{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "ZyvgOFAJyLz9"
   },
   "source": [
    "## Two Phase Predictions Design Pattern\n",
    "\n",
    "The Two Phased Prediction design pattern provides a way to address the problem of keeping models for specific use cases sophisticated and performant when they have to be deployed onto distributed devices. \n",
    "\n",
    "We'll use this [Kaggle environmental sound dataset](https://www.kaggle.com/mmoreaux/environmental-sound-classification-50?) to build a two phase model:\n",
    "\n",
    "* Phase 1 (on-device): is it an instrument?\n",
    "* Phase 2 (cloud): which instrument is it?\n",
    "\n",
    "To build this solution, both of our models will be trained on audio [spectrograms](https://en.wikipedia.org/wiki/Spectrogram) -- image representations of audio."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "2jJigv8kzdkH"
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import tensorflow_hub as hub\n",
    "import tensorflow as tf\n",
    "\n",
    "import os\n",
    "import pathlib\n",
    "import matplotlib.pyplot as plt\n",
    "from scipy import signal\n",
    "from scipy.io import wavfile"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "Lk_qORJ6wO7s"
   },
   "source": [
    "### Data pre-processing\n",
    "\n",
    "First we'll take a look at a CSV file with the audio filenames and their respective labels. Then we'll add a column for the label we'll be using in the first model to determine whether the sound is an instrument or not.\n",
    "\n",
    "All of the data we'll be using to train the models has been made publicly available in a GCS bucket."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "1hpQNSm-Z1Zv"
   },
   "source": [
    "Inspect the labels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 68
    },
    "colab_type": "code",
    "id": "KNQCYXk6PTnl",
    "outputId": "0a591459-02c4-4184-9e86-84790171bbd3"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Copying gs://ml-design-patterns/audio-train.csv...\n",
      "/ [1 files][228.4 KiB/228.4 KiB]                                                \n",
      "Operation completed over 1 objects/228.4 KiB.                                    \n"
     ]
    }
   ],
   "source": [
    "# Copy the label lookup file from GCS\n",
    "!gsutil cp gs://ml-design-patterns/audio-train.csv ."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 204
    },
    "colab_type": "code",
    "id": "JTYfU5Hd0RuP",
    "outputId": "bd6b1c4e-b7d1-4201-c9b6-00518fd266cd"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>fname</th>\n",
       "      <th>label</th>\n",
       "      <th>manually_verified</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>00044347.wav</td>\n",
       "      <td>Hi-hat</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>001ca53d.wav</td>\n",
       "      <td>Saxophone</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>002d256b.wav</td>\n",
       "      <td>Trumpet</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0033e230.wav</td>\n",
       "      <td>Glockenspiel</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>00353774.wav</td>\n",
       "      <td>Cello</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          fname         label  manually_verified\n",
       "0  00044347.wav        Hi-hat                  0\n",
       "1  001ca53d.wav     Saxophone                  1\n",
       "2  002d256b.wav       Trumpet                  0\n",
       "3  0033e230.wav  Glockenspiel                  1\n",
       "4  00353774.wav         Cello                  1"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "label_data = pd.read_csv('audio-train.csv')\n",
    "label_data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "oyrhsEeLZ3_K"
   },
   "source": [
    "Add a column for our first model: whether the sound is an instrument or not"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "cD1rUyxU0foh"
   },
   "outputs": [],
   "source": [
    "instrument_labels = ['Cello', 'Clarinet', 'Double_bass', 'Saxophone', 'Violin_or_fiddle', 'Snare_drum', 'Hi-hat', 'Flute', 'Bass_drum', 'Trumpet', 'Acoustic_guitar', 'Oboe', 'Gong', 'Tambourine', 'Cowbell', 'Harmonica', 'Electric_piano', 'Glockenspiel']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "QEL0L0S81tjc"
   },
   "outputs": [],
   "source": [
    "def check_instrument(row):\n",
    "  if row['label'] in instrument_labels:\n",
    "    return 1\n",
    "  else:\n",
    "    return 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "npLxT8tv1Ujd"
   },
   "outputs": [],
   "source": [
    "label_data['is_instrument'] = label_data.apply(check_instrument, axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 204
    },
    "colab_type": "code",
    "id": "Yu29vURm14FA",
    "outputId": "21856335-fda0-41fe-8e99-15dd96fe8c9e"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>fname</th>\n",
       "      <th>label</th>\n",
       "      <th>manually_verified</th>\n",
       "      <th>is_instrument</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>00044347.wav</td>\n",
       "      <td>Hi-hat</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>001ca53d.wav</td>\n",
       "      <td>Saxophone</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>002d256b.wav</td>\n",
       "      <td>Trumpet</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0033e230.wav</td>\n",
       "      <td>Glockenspiel</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>00353774.wav</td>\n",
       "      <td>Cello</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          fname         label  manually_verified  is_instrument\n",
       "0  00044347.wav        Hi-hat                  0              1\n",
       "1  001ca53d.wav     Saxophone                  1              1\n",
       "2  002d256b.wav       Trumpet                  0              1\n",
       "3  0033e230.wav  Glockenspiel                  1              1\n",
       "4  00353774.wav         Cello                  1              1"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "label_data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 68
    },
    "colab_type": "code",
    "id": "gOfVAjvI15B_",
    "outputId": "6e2edfde-06c9-4fb8-c02b-6139c9040e03"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    4761\n",
       "1    4712\n",
       "Name: is_instrument, dtype: int64"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "label_data['is_instrument'].value_counts()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "Ltr5mbupZ9UN"
   },
   "source": [
    "To ensure quality, we'll only use manually verified samples from the dataset."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "yw4lPlJyPo0G"
   },
   "outputs": [],
   "source": [
    "verified = label_data.loc[label_data['manually_verified'] == 1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 68
    },
    "colab_type": "code",
    "id": "idIMmCqGPo5C",
    "outputId": "6a1abd11-92de-4a6c-c574-e53ae6541a3b"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1    2002\n",
       "0    1708\n",
       "Name: is_instrument, dtype: int64"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "verified['is_instrument'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 204
    },
    "colab_type": "code",
    "id": "HLJCFLVJvb23",
    "outputId": "7e10eac4-e865-4644-9f14-81afe62e46ed"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>fname</th>\n",
       "      <th>label</th>\n",
       "      <th>manually_verified</th>\n",
       "      <th>is_instrument</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>001ca53d.wav</td>\n",
       "      <td>Saxophone</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0033e230.wav</td>\n",
       "      <td>Glockenspiel</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>00353774.wav</td>\n",
       "      <td>Cello</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>003da8e5.wav</td>\n",
       "      <td>Knock</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0048fd00.wav</td>\n",
       "      <td>Gunshot_or_gunfire</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          fname               label  manually_verified  is_instrument\n",
       "1  001ca53d.wav           Saxophone                  1              1\n",
       "3  0033e230.wav        Glockenspiel                  1              1\n",
       "4  00353774.wav               Cello                  1              1\n",
       "6  003da8e5.wav               Knock                  1              0\n",
       "7  0048fd00.wav  Gunshot_or_gunfire                  1              0"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "verified.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "P_oFYZW9TJ8e"
   },
   "source": [
    "Preview the spectrogram for a sample trumpet sound from our training dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 68
    },
    "colab_type": "code",
    "id": "Ghly8RO9Po-1",
    "outputId": "a2beb92f-fad5-4e5c-df9e-60b42700b515"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Copying gs://ml-design-patterns/audio_train/001ca53d.wav...\n",
      "/ [1 files][888.9 KiB/888.9 KiB]                                                \n",
      "Operation completed over 1 objects/888.9 KiB.                                    \n"
     ]
    }
   ],
   "source": [
    "!gsutil cp gs://ml-design-patterns/audio_train/001ca53d.wav ."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 248
    },
    "colab_type": "code",
    "id": "UHjyQlfrT3PV",
    "outputId": "11d0d053-a8ad-4361-ca07-b998c7ad36b3"
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAADnCAYAAAC9roUQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOy9ya5kSZYkJnpnG978fI4xMzsrq6sK1SBANMgFV/whfgG33PGfuGKBbBIFdnZ1VUYOkRHh4xttvKMqF3JE1RxgeaIzA0ECNAUc7v6e2R10POeIHDkuhIBjO7ZjO7Zj+2la9v/2AxzbsR3bsf3/qR033WM7tmM7tp+wHTfdYzu2Yzu2n7AdN91jO7ZjO7afsB033WM7tmM7tp+wFZ/65a/+x/85OA9kIzBVQN4DWQf0F8DyO6C9AM5/53HzdxnyDqgfgP014Ctg9g4IOVBugP0TIG95zeEEKPb8vy+BaQYUO6C95Pf1mXzPz3XnwPwdMNUAHNBd8DMh4zWc5+9CzuuEHChXwLDkv0MOZAOfKWRAsQFcAObvAzYvHdwE+BoIDqhWfM/hBCi39n0H5B2/n+/4DP0Z7z1/F+Arh+6cn81bwBd8jqmx58z5Mxf487wD+hM+yzQDyjX/7UteO+uBk+8D7v/Kob4DxgV/f/4bj/tfZUBIfemr1I9uBJo7YPsZ3xcecFPqT+f5ftWKn+8ugNM/BKy+cmg+ALvnfOepAaoHoL3md8s10J8D1T2fJRv4t5uA5pZ9Ua75//6M7zjOAGQch6IF+iX7eKo5l0LG+TGccJzKFeAADAvrs4LjH3LwfXuOiy+BbOK7ZYNNUsefn/7BY5hnvOaCz9adp7kccl63euQ93cS5OVX89zQHii1/5yvOk2zi+PdnwPIHYPuSP5/dBnRnDtnEd/Ul32dqgLHh87qJ7+s8n3FqAK+5WNv87dhf/SnHBQFor+w74DX079kN15vzwHDK3y2/49pyI+dSNvJ6w5LPmQ/A/mm6j8+B+pHjMZzxe9loHeTTWplmdl/P+TXNbY5NfO5s4HddYP/Ace7tn/Df5YbPAM/rOM/3d579X+wCNl84zN7x3afa3u+K8x/B1mvO58t3wLjk7/Kec1fzIxtT33XnHGN9P+tt7RbcS8Y5XzVv+YwuAJvP7XMt5382At0Zn7U/A+p7oH4MWH/uUNsaGGf8bn2fxj84Xjsb+N1f/0//g/vX9tWjpXtsx3Zsx/YTtuOme2zHdmzH9hO2T266IafLHzKa9eOcZv7lf/Jor2jCP/wsQ7k2t3lpIYiRJvdwQpejfrSbeZrk2UD31QW6G1MFzD6Y6zqjO1G0AALdgv1TmuzdBQBvIQJzdYod/4bc9xboLvn9+Vvg5I+Bn3H2+8Ge68rxHubSA7y+r4H6ju+jnwN0p3xtLn3HnhsWDsOc7kv1wPfQu/mCzzLO+Hz1nYUVHJ/VTXSRnKcrDJjrWQLdqUP1YK5ezZDO/a8y1Hd8ppAdvLu51y6Y++T5+VDQLRwXwPJ7hmgU6mmv+HzrzxnC2D/l+yg84Dw/GzL2VfXIv5tbc51HPr/CAVNt7iQsTAK+oy/582luISALo2Q93Upf2DUHYPYhIG853tlgbiJSaAGO80hhpqlJc9KNwOrrjK50y77ozvm5vEtusxttHmzTu43zFDYbTjg/iy1QbdiX44Lua3cKNDf8//pLh6nm82cdn7M/5Z9ssjDDjPcfTtgXdKvTnD/9fYAv+JzFjmMwNXRxZx9sjiGFBgYLH0y1zZuJIbls4H3cBDhbPyG3PrhIIb6pYp/Wjx7jks9ebvmugIVtsvS8Prcwi4Wviq250oX939Zn/cB/758yzFTf817FzkJjuV2/43P3J8DumYuhurzn87WX7Jdxzp/r3ac6hX6mhr8vtnwX53mv/tT6wHN8F28Cqnu+33DCPqofA0NRlc3JGb83f8PvhoLP1l7xHr4EZu+BxVuP7QuH+Xt7HwunhIzzCd764Z5zt2iBs9/7T22rn9508x6YyrTw52/5Ard/l+Hkjx7lhi+hRZYP7ITqgXHA2QeLKwY+8LDkxBlntqidLb6SC3g4sY2k4H26K4sFTdzIlt+FGHfJBqBa20S3WFZ3wcmSt7z2uABWXztueg/A9T8OjE1rMEs+m+LBGjhkjM1lY4qLhpwbgwbEjTY5QopjhpzXru/53f4MuPq1jxti3lkfDNxAXOD9Vj+3a1mscljw84o9+pr3Gy3WVq0ZQwPYV75Mm4fztnHZJM9GTqR+yb5SjC0b7RCdp3i387zn/qktyo3FQi2Ot3ue4pTV2g7luxRLR7DrTMDFP08xDqiYWbFNcXg3WRz4lAtu/YXDuARmN4EH684OGBsTb5vw+W9C3Gj2T/kzX9tkHnjgOttAyi0X1/xtiidPM86p+VtuEjrotcn3Z3btaxoYen9dvzIjpNywn6eZ/W7k82pj0hx1tgkPC4uXP/L3w8Ixlm3rs3nP8R/n7JOz33vGFW195EPaQK9+PcUN5ND4KDrbpG2DzHqg+QBUq8BDuAIef5bBjQebaGnztbc1AK4bHbr9qa2nnM+usesu7DAyQ2iq2XfjzIyHIl2juQ3c1B2vVa25ye+vbf4VwOJ1QN7zuZx9ttgZNmT4R7XivB7nPAAVs3Vjig3nHfteB6obea/+1HEuWQxbMef22gy9Fph/CJga9kco+Ke9zDA1nPsyGuo7zvX2mveqHzjfpobXffz60wGEY3jh2I7t2I7tJ2yftnT3RDnzlqff/ilPoWIDrL7MiF7mH1sicOnfwfEO3QWtuqzjaSBXD+DpWa1ppYWM9yn2wFjT9C/XyW1uLxzGGU/U+buA/iSd0Flv7skS0fXTqStE+92/L5H3tIbdlNDP5paWZ0ROC1pPsuCKHTB/G7B96ZDvzSXuzBI4N6tmNKS35rv4iv9efckudmbFZD3R5+7CrPsF3zHfs69kVckKrh4NSe+Taz3OgGrtUewNpTWrav+Ep3R/xmu5ySyHMVlFU5P6SwwCZxZ2fWsueJaYHzBpjvl7/qM0K7s75/VGc9MUYqofaCGsv8gxzXh9hX/qFfsg5LQYZAkjS9Zwe+n4jHv2U3Mf4hjU9wH3v3S0/PZmkai/pvRHc6+9pMeyf8rrNbfA+b94wJHlIUbEcGIhrve0poIDzn4fUD0ky9Z5Xkvj7Qtg+8Lm2ZwWdt7z3abGmA8Z+91X/Nny+xD7emyMBeJTCCYUZt3nwOrzLIalxNAotvx78yqnlTzSmgds7RhjBoGW4TgH2ifA5pUjw8QnFkc2JKbC7jnnzGRhqsUPvEZloYPgDjwUe/7mhn0IJKs677i2hqWtfWPMtJcOmYWQLn8zkrGy5ns5s+B95bC/tmc0z6o/49wKGa87lWnP2D+zz418xsLWT7ED9tcuWu3VgTcT5/m9rSVjQDUW2tw9cyg2xuz5veccurK+6pPnGLI0V3xh+8BJ8orkvfxZm+6xHduxHdux/bjtk5uuLBFfMT4zf8ufO09LsDsHnv8DCZP5kHh2LvAkE39NAIYv7USe887izxY7oH4ItFTsJJks1iOuoguIAfZyA2w+czG+25+ROywL7qNYZEceaLUyTmt+cL3MYktPLIZrQNbyhwAEYPeCn+tPeQpmHf/fXtJK6c/S6d6f81ou8FqKIZabBHjV93yH5pb30mmPQAsdAWjueTq7MfFxD+NhvmSfbZ9laC8/vq64kzFmbdaULKhplmLDucUfg0vWVfvELIdtsgYE6HTnDos3QLkNCaTqk1fTXfBnuxcW457TQq8e+Qy+Jv8x39vcMm4mgnkrbYp5Fztg95TPsH/iIid394xjXj8YYFUfTlYbU28gyI0Bgmt6RXnH+6++zGgpmyXkAseoWvPZhzn7afPC0eMpLE5ontHitVmIc4KTcPTIxM2uHjlOg3FCq3v+XWyBh1867J8kwEzeS3OTxjtvEXm3ihP6wrAV47r2pwZAbYFiH2ipN8mD6M94v+Y28dLHefI48n2ywostPuISKy6fecaIxRueGqC5Yz82t4Y3GK6h60yNgXUP7J9yZ15nzTWxeeXw8LMC48z45OaBZYMBhb2t097G0fi1eWeexpLXLFrzlgPfNTg+T74nDiQQs7lNsWZdR3tV9UAvM+QW5694HfX76ktyvqsHA1mX9LyEAe2f8T7zDyH2txuTx/ep9slNNxvNxXR8+O48TQg3cbK8+W9KVCvbtIwULtfeeXaSBkKoXzbYYjN3cP0FsH3pSN5fp+v051zMhW2ivkjPkluCxXBqz2qk6WKXNsO85UQQkKHAvlgBwaWBFYAiN8NNdO1CZmBV/TGpXYsLdhi4iRO73HCTQeBAtNe2kdg9poabNgL/PXuPeNjA0WUdDNzqrtgH/akBPUY8z3eWVLJPgIIOuf2Tj113oapyvQRsjdYvYmlkg4Erc75nNhy4SyPfd/cc2L5y3MQslLJ4y4XoLaQjl7fYcpEMS3PruuTqTbUlheRAMDYDYOEPc/mLXXoGNTemZILJyO/1PZ+tfrCDbrJFYsDL4m3A/omDz43YPrdnaPh8za2Ft1r2Zbnl9UJOBoPeqz9DZCZMNT/fn9lhdZVCZ/2ZzW/b1MYF3fVxzmcVo6U7Z0hLiTwAcPpHT1DQ8bonfyBwW265EelQmmq6s90FsH3hUD0m0LrY899Tzd/XD4llEQo+z9QY6LZPB2++BxZv+O7ZyPvsngFnvw0RQFp97RByYPvKWDw9f15Zckux4ViLVaEEm6xPawvGHtF89RX7uL9gn+2eW189knk0NXy+kPE7U8XnchairO8S4Kzkh8MEnpDzc90Zx8aXxt4p09wKma3tAlj8EOJBVK34+3GZEl7GBZ959p7jsnvicPXrCbm9WzYdhHn+nE332I7t2I7t2H7c9slN1xmv9uo/+mgVTTO604W5DqKPxMB8k8IHY5Ms3u7CrEbRssDTRxSq5XcBy9dTNOPLNU+zakVryBn3Vyl8yIx69kiXr34Alq/pagnQUKqw3JNhaW/sUohBqa/OALSsN2vFTvGsS/zDYpeoZfunZtFm6T5uoBWweB2w+MFAKgMMu0vg8p88XfuOz1js7ZQOKQW5eqRrl3V8t2LLfh7NdQuOaajjLKU/CzjUO8CnFFyA4zHViVfbn/HZzr/x9FwaWgzVymhUPd2nYpNcpf1T4PR3AVPF0I5oc9uXLqY8y+VrL5OrKq/l4psJu2fWZ+DYbV8SzMsmXn9YWLpqlcI6oh4BCbC8/schUrWGE87H9olZ62YhZ2b5rL9kTKq/MM8kQ6TmCdDdX9NyjGmsZpG3Vzb/isQvj8+Yp9CDQJtia2CLucfOwk37pwzNDUtas80dosVYmDcGR867O7AG2yuHvE/WrfMMaTR35unY3Cha46qCn41cV2cWtYGb4rcDQLkJcc7Io909N4DYJU7x6kuGdES1BNiPCo2IzjnOuG7HOee1txR6UbnqBwtTlMlrDY7uO0Lq82LPPjz/bYfdU3qc2WhWvkkIzN/REp7dEphs7hC56uIOn31DL0HhAD27qH0RmDS+Lwzo33zmMLsJBCJtfeUt11PIUyhoULjGAbsnObn5Jd8vV4r6v9KOlu6xHduxHdtP2D656fYmrHH7txnja6JY3PFkk4XjjUgsEKp+MNCnsvjawqg3hcXFZilGouyj7sLh5u/yCGZNVYq5yKLwVQLXmptExWkv+Ty7axLOq0eeouWWb5iNpDyFHDGja/aef++vaaH6kqdoaVltQZlVFved7N6K51WWZVcYAV8JB25kTLi9pnUTcrOWMuD+lxQGEv2uWqcTfDLrbjg1a2XJeG7IjBJjz9WfA5vPCWrBgAQ3WZx5Rauw3PFPd25Wp1kkir9lAz+3/jyLM6C94ucni817Axhyy9pD4BgJOBEgJqGU+sZOfp/AIYGavgTu/00e+6i5QaSB7Z8gigplA+eWrBs3IgoadVe83bAAbv+2ZJJByXk1LixWOk8xbSUNMN4Z0Hww8GnNOVHsDUxZJpC22NKC6S6S0FCweH39EDA2FldsOJ+aG5urDYGjxZvAjKczm0dmDU61AVIBWH1BKlhhQNo4Zwy22HPO9ec23/uPM6NCznfvl/w7bxGzyDqjUIo+J1Att+xCn3Mt1I/J0l19RYAyM5qfL837eGXzseYzCiNp7vhZZ0lJkWIJ9nG5MXobktVZPfI9KssknGaW/HIoBWN9Py4sVn3K+OoP/10dkzKGEz5jdc//90vFnGkJd2eIACAcvZbtC1LQBDBPs4TFjAtEums2JtGpYIJK2+fMmCvNqw05f15uDPsB16QSusYZLWGJGX0E8P6XbrqAsQpGvpQUqsa5TVSwU2tLWT3/xmPzylIkxVRYHLhQhiyXj5zcuS1+N7GjEMyN2XHiAnTL6zteXxvL7rllI5kC1fwtN1RkiTGBjBN9quj+bJ+TYytlL91PG7sYFt25vesDYqqpMp4GA7ROv51i8B5AzMDRYAJpQ9H7+RIxw6255YRtr3jP5jYtvtIUk7IBkUM8VezjcW7umKU7aqPojU0gAE6hBGWonX0TIqimUNDlP40ot8au2KZMHgGe5QYxe9AFLrSpsjDLJh145S5xXWEH3eI1sPnCXNYXie+sfmivOTemhuPUn3Mxj3OOra/optUPvBccM7aqTYi88N1zO6Tsvj5PAJxAm+qRP1995SKfFoGb2DgDmnvPvgMBt2zi8wsIFZA3zTh/hhPOx+qRB5/UyMRldpbeLbS7M1WwwrLXiq2BRmeWYZYlQG6y9VKbqzxaeCbfW7rqW2ZsyShQZphCKpvPXfxZZEFoHk2c17vniekyf8dnaR4CVeCs73QgTk0a1xhyM4BqmHP9zD7wGbUW2ieISnrBcd1XK47vYOyc3VMXGUyHa0UgaW5Zdc0t15u3sIgvee/O9gWFysTcqB84rlInDHbQiHOu0NCwTIexQNH+nPPQGYc37wiiKm1/9sFCPE0KVWYj9wLNac3Lcv0jbLrHdmzHdmzH9uO1TwNpk51MZob3ZlU40zQFTFPVguWbV3SfxbFTtlS5slP0llZA0QIXv5kwWk6zNGh1ckwNs6MA/nw4SW5Xd2kUGsvGGud2ytuJE7U7pfdZJKswM2tqOOFJFsMUcr9NWMWZHqcb+M7OsmnKFT93/29yWq0+gT2AAYkVT3dlwwVHq6XYHXAivQEbphfRnZnrckKrqnoEJIqz/tKsl57W6uwmRNqLTnFfJrcsb5m5JW51saeVNs3SKe8C8P6/KtCdMfyg9x1npn1bJBqT+rK95jMp444ZYhw/AWjlhh7I9lUCkU5/TwqO+rW28MGL/7VHvqNXU1ouvrRRlT21e0lq02B6vNLR6C4sBFIky0McVoFSwxKY3XhMM96zuzTrurYQRMXwiqhv6y9cHENlSY5zxAwpadjqM26igas57ktg/cohmJDM7B3BYTcm6uO44PtmBo4t3tg7KPvulmGlYp9cdOctdPbcoT+lxTqc6mcW8rKQUHNnFvWeYxXFXaoE6LZXyXquVnTD9T3pQTsDm0S7lDbtYNrJw4mJRj2zUNaKVq54/ALoti84v4otw44xVAVbm0aray8R11NmAkftJddmc2eu/JLWuTOqaW1hgmGRPHDpVHeXBh4btUshKtH1mlt+T5apwiS+Yv/UjyFlXC4odjTVRi9c8d27c0RANrfwn8JaAn7/rE332I7t2I7t2H7c9mntBctpLjcmXWfxFJGQi71JoZlewtSYtZhRTlCWgbK3AFos7TWw+ipH3qfTY3bLAE9uMSjRQ0KWrAEgked9hRh7lQXrpJxlyRv1fVJGK9dW5cAy09orKjmNlo0ikC4zS32qeYo3t7S21l+SJqVMs/lb0lVqI6bL6pSqmuQafZ1Aw/7cLO1Tnv7dRaKsfaTgn6WYnaTvNp87ZD2fQ7FtZZ4VO96zvuU7zG8mZoVZAkS1RrQ2FX9WU78ISBxOaG05o3sJoMoMyKzv7TMLi28+kFCemwSnsseU0bb+wiX6WJfinLd/U0XqoKozuCkR4QVkuSlZEfKWZFmc/T5gWPD+2ZRy42XFrD+jJRsKI/B7RA0KvRcso0+UpfVXHJPugvNobBJFKuS0trpzWmCD6QLoj2Lo7TUzrrpTx4ScIiAbafWHIuEbyuwTVXH/BBEMkwUmz0RxRF9a3N/REpQ1GrIU7/Qm7SjrTkkCincOp2btLi3B6ITf6y2rUJKYy9f+I52MqTIVN89x9zn7SYD67pntC2bNFweW7fa5Y3/lNh93yaLWHPAGtLvJwHBLzBGAPc4NJDS6KHz6fH/GuHy1Zt9d/ieq+w0WnxfY7Guje8l7P+N1BY4XW9IgFfuuVlz/bmSWpPo/t2QTxb87oyRG3YlPtKOle2zHdmzH9hO2T2660oecqpSK6AuesABjKIpfSKNTos7x1DPBZVkZ0kOIaktmmT7+zEUU3xvN6pAhoHhr3iGyDmS90TIKMW6oJqHnvGPMSdQnWVW7ZxnrcUl79gCJlLD0cJKUhhpTfJosj7y54TO218aCsHfqz/hd/UzWXXApllWtUwqjPAnpcg4nfL6T7zwVjM4SdUy11KRloTx1WanZCGyfFlHdS/XQlP7rQvreNLM8dEP5pWcs9Ds4nvJCsqXWVFktO6lUbb5wMeZZ3yVNCVmP5ZY13oTuN7fGNqipIjb/QK8h1qJrE5rdn5BBIwaEFMOQUXWufuDftCjZh0r3znvG5yKrASm+p3i+tCiUwivdBKHoYgjkbUqY8CWtHlmOvkpi/Eocaj6QRkZrncyZ/aVDf24eiiWsKMHGV4laiAO9YhcSvUxi2ePcMA3zTpp7MhuUHBOTZSaOb3eJSJObGlKvpCss3eapAZbfJq/Jl/QUFONe/MBxc55aE4dqgYr7z94nmpvzfMbcNA/qB37v/Dee2EXzcQxbzwZwno8LrqvuMq3JsbH4tHmDF7/xmL+2XSyYNb2ghT42DrMP9C7zPl23XPHzIU97lbwjaSuIHqp/d+eISRjSFRGWIJxF83OcpwSgP2vTFTVFbrNM8HFuFJvBNot7bmoSfZHYcv3ARSNJw6lOVKMoJrxIHaJCeLMDHqeuVa3YYcrMUXaZ8suLnYuuhygju2eIfLy4SczNXS1Sx6q6gLQdyl3K8JHqvwrflcY5rNZWwG40mpu5sZJe1AYS8kT7Akh/aW65aGN2mhXNi5UPLDSyfZ7R5bHQimhEMLEebarOm7TgPnGAs97Ecx5S5trZ7ykHKQ5lc0OXtrkLKGysF29DlKvTQRGBAevLqeZ1SxPmUTUPFeWDQxRomWbkQj9+nVFwfjDwzmQn1185FG3Ay/+lo5BJR7V+6TBkI930xVtmw+lZJGU4We5+e8UNvzXh+9Nvp3g4jjOCPs40PwBE2UMAifaj/H6jElUrRNEgb5UXJPqNLOkYVI+WqdYlvqqAznLDTc5bWKq+S/Q2HWTepBbFA5YQFGAc2irN13HB9eFN0Kg/YchpnCGK3wuQzvd83UoHkfHNxwV/50KiewJWvcJCbYWMrCptPFPD64gG6Caug9Jofe1Vcr0VFnDBwmom7n73N2bo7BJQGWlnBsCr7+AMmF5zHuY9i3FKDvXuVxnDm7buJeO6+iLD7pmL69MXiAVJ1d+SWlVRy/k7/t1fIBYcHRfGD16lA02FANpLy1IrWIXG+XQwH4bv/os33WM7tmM7tmP7cdufVBkbZ8liq1aWZz2nSydXeVhYBpLt8vkuuR4AYo0tN1n2h50Y5YZmeblGdMMnoy6pvIlO/MmyRfLeTuouSbMByeqTSyhX+1CxSiGQYER5uQKywCUFJ3lBuZiDySNKHFo57xe/mWKWF5CI6s1dshTzLgFm2UAXpl8ihikkTB4yy5CysMD+KSL5XwkUcHTzJEWnLK7Tbz2u/i+P/sJUt8xCkybB/C374vHrjFS2jv1fWI221VeOFLuREo4RtKkSgCJrO4o2n6aacrMPiPnmCoV8VEcq4++f/p9TzNoZLZtn/hpYv8rw3X9fM7mjBlZfMVNOFLxpBjyawpV0JIKzjD7TUAiZ6UVYeOTh3+TMnry1sE2gl1MdhD5URqpo01yVgp5ojHlnFrd5JBISV40vIGW1KSyhsSs2FnqyuSMgVXO03KQ5Wa4PwGHT4Tj91sdaewoPuIkKaoUltczem8VlangS3I7FBcyy7c6tRHmWwDQlJWUdKW6i3ElXZVggZQWajopq3ckCHS0RQNokvk4JC96SpLIOkUJ69k2I4GCwMFm5SzS5vEvqfgKSgwFaPgfyjmDZsDQ1NZXJ6lPIUWEKgHsGkNbVYJbq0/8wxDmW9dQBmRqjt275uerB6I+SbLRMzWKbQiKLH3h9hRrgbL79uZvusR3bsR3bsf247ZOb7mAWWX2XNEYVU9OprJN/qhCBpWyi1TEsUixEaZ/BWa72lgBMZbqa0ntVKRRp7paPidYxCYjrE3UIRgup7xOtLJuSlVnfGzHecqgFbi1/QBQAl97nsEy6rAIklP4ofQlZatf/ccTt3+ZRGUli01EVyoAGqRQp7VGWg34+f2OWT0iWoTN9igA7ZXfJitp+hlis8urXA4IDHn6R4fHrLJaraa8Q1d+aD4x5KQ1TiRkhY+KFnkO0tWLPvhAtUGmwh0UnNWZZT4urPzMvpU7Ap0rRlFvg6X8YUT0GPH6dR90GUaPaJ4gJBcMporZvZunXvk4KX0qRFpWnO08g2Oxdevdxkfp++8oq7to9pzLF8J1n/7ZXiML30h92gfOm0dwvE0VPc+Hin0MEzirTNRitam+5oWUtupY8Lmk1CKxSzFhg6zQ3utkFsHmZUWB/nqh/GqvmPmBcJDHw+gFR8WyakU6nYpuwNaeiigImT78NUS+is+QjlaNxAVH7oNzy3jOrKJ337I/dc3oa8/ch0hO91liWrOLRhOHHOYXcF6/5WN11SLQuJM9m/xSxBNVUIVb0Je7heK/ZQezUQOWp5rOqOOv8XaD32hi1tLfithvg9q9L0iUNZ1h+Z/uHJX+puKWAy/2TRInsrhCTatpLxDRjpf+Os79g0xUftDBea3uZFpwvTUADxmW1MswSUF5+ZyieLbzl99yg5frKJdQEzi0jLVaYMDm2bDKgzMoblwbYTKUtSHPJ9Q9w0B8AACAASURBVPLKTJE4+GCggVBHLa5elYczIqgK7Mv9qyynXsLq9UPiqhZb4MPfF9RysCC+6l8Nlt8vhse4SO6as01Nh0HI02Y1f0NtAWfcw9PfBuQD+1jgkABN/X3/yzJmfuU9YpaWmArNbepPVWtW7a7DQ0nZQHLbValZaHm54nNoM+7PEtPC1wYI7pNegzZJwMCTvyrQXTiGiAxQVSl3hYW8CbTADqb+jP8vNlzccOlgVl2tQ4aB+kQlxaea19TzjOaSAwZuxUq1wPKP6cCYGpOLtDkZy5wjCUBpnm2fuVhTbbRMOGU6TjW/L86pRFXEfQ4Fud6SLaxMJEqi7LqfRGdyq6ah6gzdqYthEm0KAA/X5gORfMAYKRYOk4Rje8FQzePPHPbXjqLhD4lpIoEngUOjybkOp3zXk2+5yQpA3L5wcT4JEHR28ChUJfBcc5RcehcP3+784CD0iZkhwG5cpDDeYWXi+o59owq+w8LewQSrds8TiBgyZtjqEIjhIxOVl27LYW06VelQVZJxye/05wlgBQyoNabL1a+nP3/TPbZjO7ZjO7Yft32S3BCzu0KyIIYF4IuA4Bz6ZQKW+jOeCO01T+3WMldk/bSXKZ8f4Mmy/CMD2L60CrMlokyiQhLZxrQLTKg56xNvtNzwc6e/C9g/ddHqEb9PNBJJshVbvo9+HtWOzFpsbtL/h3nKvhKYoRCAVNQAxBIqu2cunuySgxtnpnw0fMwplmZE1vME9rCsPbNexhngSxfl9hS28QYaynKRmyqQAZbZ5U10GyAFRhZ2LKFk1pg40XLhJa0HZxQneQoGDuUmV6jKp/A0QIttyo+vVvysnmEQD1WhGSACUL7m85eWzx4KYGgSSJFZCaO8QxRNH+zemVUWLoxuJ2DMV7zeuARQJqsxtxCSNBq6C2of7J7TulFtOJUBOgRcF28QaXml9Wt3haTGVSR3ePsyWYhFm4C0rE9WkfjMvnBR8tRNwGSWsHQH2ifJsj0sHxO9M+NSC5QTqCwuc3AJQPYWItK8Bei5DeZe96ccp/11AqW6C97z8tcD1p+XLE/zHFibolkE1Q74s5WJfavqc3Nr0pAfktXYXdBzKt4QVB4X1h8Gml78s8f2eQaVtAKS+pssbAF7kdqYmbzimEIGyuKMou62fguTfN29QOSuAykU6W3eaMymMlWejpS6XVJgK/ZpDEMOPPwi/9S2erR0j+3Yju3Yfsr2JzddiWWLasKYiwFgVcqRFrVD2ruygNsnlsVjRPfhlNafrwhyyEJoL806QYqBlluzlFwK0Dd3iGpEwzJV6hX9ZGx4qip3vX5IFrKy4C7+xUfQS3n1UiwCEgVF5HdVfZ0ssaO5s+sNKYOnejT9TyPZ96dIVUGNciNgUrStQ41h6UnU97zfZLq4Am8OQRFZN4s3TGrozo3ydpdAuaLlSS7QQjFPNyYrWZZFuUqUIoE9pRHSAVPAMkK+rIZxBizehZh4ISrXZEpLUiord8nbCWZVF6ZzWmyMpA+L9QuIOCgqqAy1wuJy5SZlxPkSURWrPzPqmgFN5ZpxduX0IyTATloTeyuxEq02idznCYx5+n+MLDM0S/dUf9QPyZpTPNh5jp20FcqNUSCXCb8IedIy6c+YZCOATjTIccGkimJvWrEfQlTak46E+lMJK7qP5qqAY1HipOSn8jbjwoTGDUASZSsb+Pwqv/Xh35XYvTANa6QkKYGv0rpWQotE4aOViaTDUK6NonYTsH1pQuGg56B4bn+a4eI3Y7JQkTw9afpmfbIy528Ri9T2Z2mdZp3tTaa6pszCxTsfNRkA7hnZZJoouzT20WpfJOwhs/1ttOrFsSRYy0eV0tin2ic33fkbpKyZ6mAwsxBFl8eZIYmlAWImAVffGedvmzh4zpONsHuGKKumqrpacEpvzHtOzCimY8H83XNWSZVwiQtpk1FqY3eZUl93zxErAGjjW3+e4ez3E3qTjCyt5pXAHQlXiD0xWgUFgVWafEASC5lsELQRaFKU2xAPnYt/CRFJH045gHmfkPZylSo4lNu0WapMdayoagO9eeliiezg2K8xY+aKh9vuaWKEzN9ZqrRlAek5BTIUB+Incu+HJSfl9lUCgXSYbF45wPpePys6vbeFXua2MQ4ps69apU2qspCMxlnZcsXekGjbUP0ByBfH1w4sZRN157z2/B2vvf7CxZRbXxgYZKnlyh6KNbg0B43RMrvhfe9/WRBQfDQX+YzXYb9zU1f5eVWrVRnx5j7JoVbrBPxIeL2z0E+1TqCfXFs3ApmNa39qQkctovh5uUmGRQxn7Dnmqm+mMNruOftAdQpbC43M3yXZzJjBlifGjjORonKTNlVx4AF8JNquzVHAsUSE8h1/n7cEDdtrbnAPP09VH4qtAY4m0dheAjd/W0QhobiRWSjh/JsQ5SVlGKg+GlzaiCdjDHkDsVPF7SyK9rvwsXGkFN7W5CHru495ywqhxYPGJxGgYpvW2p+96R7bsR3bsR3bj9s+zdO1bC1RSqJwTR1iCReBBKIJ+ZIWsgAYnmCsUQUQ2Jl9SHzC/sxOF4ErJrjsPD9TbpLrt/yep7FAKwCRO9qfIQpYOE+rMVoN5lqInuMrYPVFHl12CZfAMnj6M+N+fuB3xxli3SgExIq1uXHzVJlWWUEuJErS7jlFWeo74O6vXSy7o9NdAj7KZlEFZoUQEAgsiDaT7xlWmOaWybO1sIrVzWpuEMXS22vrUwN62isX6WOAuf0H1r1obsG0E8Y5cPa7ECu5HmpYSEazXBsfe0pulaiCUYehonWjcMn2sxQy6U/NyuuM1mW6F8PcwNdT9md/hlghGCZkre90F8mN3j8xDYJZoidKaKjYJ22FbEjym+Jp18ZFH+b0GvJdssAHc3XzzuhzgWOrcJK8PmmT9Oe0KJEBw2mI7mx3YaCdCcx7C8mMxu1WOKLYpxCBQgMKk7TXAqModKPQiUIDuXkbh8LaJ99yHJWxlbd8x+YmeR0Ceedv2b+SWjzUSoFLlp9cdgHH+tPc0aPrL+j1EqhzyDrg+T8MKXxla2Uwsafds+RxRFFzhUWMT15ugc0LF0GuYm/6LrbfiIK2fWHem1HOpjnQPuXairoXRl8ThTRv+d1il0TsAT6nQnni5Df3fL5qzZ+11wbW73mvT7WjpXtsx3Zsx/YTtk9uutOcpV/yjqeQaCH1TRZJ04qjKAaqOI0s12lGy3Q0da9sYOxNFku5TvGpcm2C4GY966Qv9sDZb0MstUMwgPHJGMSeElDiC6N6HUrcmTWuQoSZT3HmcZFAjrwDTv8Q4v39AUlcCkrjnBZNb8RzfRZgDLh6sFiVxK+zBLKon8Y5+2JYGqAnYA0Wezb1tuYOWH2ZMc7dCjBh8U8BMKJUFZZBJEAzGwiEStpOugiyqsc5v1Otmb3UXvNElzeQDcDms2TNAYjSfdOcVsi4MPK7qXDtnlm16GWKAavkjLwmiXALoFUyjICsasXrqwxNNiSMQBmAii2KLlTs2ZcqGaN4bfXI8YzWGey556R3KU48VUmIWpTEaY7ooUl/RKpbmXkh87fp/RQnLLZmvffqa7oW0t8IGdA+4XwODlHUvlyxP+fvE+2OniWfQZaYki2mitlZ1cosPgMIAxC9makJmL8nzUv6B1LsEr1SCnveknR8kTARrfHhNMVFR9MiKbbJC1F5ofqeSSMCnM7/hSWTlOBy+29LJsUUKR47f8vHvfgNAS6NXXOLmLUnqqjWi4qyTrVJMiKBneMcOPljiD+TZ6nyWOM8rUkVH6gfbc6aKHy5Tvvg/E3A7gnX3GT9158YqDqnp1LdW6LWMq2Vf60dLd1jO7ZjO7afsH1y0y1XQH/iokWSD8DT/32PcRkiAi6VpHGWTkxnpOb+PFmBlcX+Zu8QdSpVOE+E96j4ZWmC5ca0eq+Ah1+4j0jw2+cuFs0bThjrVJme2fuP45XKy+7OE9VrWKR8bH+QK149mlVgxR4lyO0rY2UYstxeWazYKFiiyfRWwl16C5OVJ3KWjlqo7Pk+WV5SQGpuGevbP0HMGe8uDhgRViJk8yohzUoOUEn3/iyxERCsBEyeYpsqhaMSJfunJJGLKdBekvje3BxQmKSAJs1TK1lSPqYxqlY87fOOsdj6LllAmj+KqcvqPxS2l16CdDxCRq9HBUIPLS/F4arHxChRSrnGYP6G3xlMb1YemeJ09QPHbHaT2Ciz9wmZV3nxnVnD+Z60rcJSpJsbm+NW4FGUuP7MLFrDP6YacL2LiQxKKS52jvH4PMUJZS13FscWdU0lbcbFgSfjaakv3gT0J8DpH0b4gmyZ/iJ5A/nepbVp60DJR/P3iXKnZBdZpCfm7SmRpzDN3JAfWHLuYJ3epkSIccn5EnLg/lcZ3Gg6uCeI8efZhxBV9HbP+P53v8pigdP2OsX7dU+xAlSYVLoIGv+iNQriRLW8Yos47vJUYlkglQqyNXFYhHNqgM0XiApzu+cuMlxUPFW/AxALC2xfIpZI+rM33f4MsXpmaab8m/92Fjt9qkmX6M/YyRf/2UeJs8XrlBeOzFzhxkQy9rYw7xN3rrBFL0lBZLzuYGGJs98FzN6lAZCg9GRcYfEFpZ8g+pioPMqGE60j621TsMHQZNg/4UIURUUDLECjO+eCOPtt4GZmkpASQ495+ucpdJLveWBJYFqbhqhsWc8NdfcMkfvcXqbfaXNp7kPMsIMzvqXdP1bMEG2mTYs2Zi6ZDsb8DaKgkBZ+f4Io1qNsm2Kfxmea2eS15/eWPdhe2Z8nCaA4+51PUpAlEEpucuMsPYeAudo4o9JFqB9DrCAtLq/kFptbmJRlwGG2kkAXvYfCNqoI4I3HWhj1afaOHF2An9ciUrgGMA6vLXJvoN/qax5O3kI7zQ3nyO5FOnxVRbfYcO6c/AEIVYigkQTJo5aG8XqjbsGc/SUti6km1S84jpt0OCYTnNo9c8gG4ObvCiz/COyf8IDxlW1+plEgkR/x6oclaVxAmv/i0rdXPIjrFWINQh2UvmKtN4R0QCl0tPnMDuhHvrs2/mnGdeU81wWr/TK2EKuAGy9YOhnL74xyuk8baRQIP6SJWSssRKS5AtiBbSEPJ8lLy8grLStt8RrROJlqA9yHJCY/We1FHRiiY5bbEA/GaZa+Kzrip9oxvHBsx3Zsx/YTtk9uuiq/0klpSTSgYLn4BhyoTM3dX/NyIUcMiJcbnoyqiSRB5MUbS5KYUjCc2SgfW4zB3J/tCxfLvAjcKjfA2TdWy2xJq625s/zpPGWiDMtU32xcIoqXV4/JwgKMCL4zxSaXTqypMWu1RdSEWH/hIsVmslxsmEUhmoyC+HAsH+NNGnM45X1VMkTutfommwxcyGmFya1sL12s/3X165ElVMzbKDZJaBnWj1kHnH/jUW5olTU3/Hxz76P1LrJ9pM91iLXShhPOkNktVaVkddcPfCdnkoLSH3CBoNXd32TRta4eSb2S1RPLuwRavXL3Jam3e+aoB1ElrwTg+O2e8ZrbZ6x/FWVFjdw/f5PoURGYGyjjqXI7AmNlHbuJQIjqrhU7WI2ugPqR1yzXRhk0Ufdg2hQS7y+2lkRiYx3nT2eeUU8QRnQ2JTKwRlqI9LBDGpz0PXwJrH7mCMpOgcUCepZVkji9Mhk3n7OvvGXEaa4oGSIbE5Bc7DiHlz9wbkew0tzj5pbucmdJAuUmhRnaC77P7F2y7gQGStOj2CeQW96X1kc20KOJYQ0wbKeCAb5KliOQ1MrKtVG+DPSWNR3yBOzlLfvxsGbZsEhJOLkl3bRXiPKtpdUrlHSrQp5Smiu3SYujuRHw6qLUraif83eBcpHnf8Gme2zHdmzHdmw/bvs0ZWzGE0I0of48WUQigZfrlLorYr9Izb2lunZnDsvvDNgwSsXuWTqNyg1jLsrZ92WyWoNDLKgXckQhcGmwRjUzO4nWX6QTOO+sEipSfE7fVfA9GI1GdDABR4fFHmX9+DoF2mPaq+kITCa4nQ0JLJO+wexDwId/l1vRzUDgyay9bEqntJS4hvmBdoMBCyff0luQbuvN3xUx5ilLI+8Txahc0Yp9+FkWi162T3j9h19k0SqbLM073ycrx00HinCB6b6VFeHrz5PgdSiBkz96ao+a5br+wqFcW6FI0zruz4HHn9Mq6S74bgKQgpHtgWTtq49l6cVKvUaN80bvGk4t796U3tor9sHjz91HSTbSWpaerQpcCnNgwk6IfcI4vqN63AvOg/kbAm2Tqa9d/pPnvKwPEgpsboWM7zx7bzHOlYtAolKdpfZVPbqolyG9j2xMMWJp7PanwPYli69Oc45Je51ojfUqROFtUbykBiewTHFRVawWGBcV00xzWBWklUBSrpMexuwmABn7oD9Nsd7cPIWpQSz0KW0G7Qdw/MP0chffL28ZI5fXJJ1qIM3FaZa0TaK3UaQ54zzno9bi7oXRxLbsn+0LpEKYYCzXF8BYp2QG7T95S6pgYWnXvVFgJfzfn3ENNB8Q48vjzOLUAbGYwp+16VYPBBSqxwPU0yaLpBX10lmvzrQL92lxVGuKW+QdcPLHVIk2iqTv0jWnmb3AFWXfBDwo86UwgEFPP9jmJJd09gFRuV71r+oHy48PxhAwl0Gyh+Ocm6By4gUwlWsOZH+KKFVYbLihKVtsahiyOJR9lKCJOMLtpSOwcgWsP6P7vHuW+MEInMzVytB5EyNRdpwWnFw3vYdqrkm7QaIgsRbUZCi6IenVY6pyLNdTWVD1A6JKP0Kq7Aog8lBDRvdXwFPesu7aVAHnvw1RGERC7YNxdcWGyA9E1nPTeVCoRwIv0cXdp6rGCgNIcMQXiOEOnyd3VmyP7GCDkVh1sUkcTwnESJyFgkuOz2gcTYlWq8rx9hUinxgAbv82i5loqliRdzwcBdQKGD2sozfa/PY5EApWXm6vrf7gZZrbIWMmIrIkVagy7CffBoouDYgiQN2piwBQ88EYMgZS5Z1tslMyPg4P+0Ph8FjBxVz7wYA9ude7F5yH9S0/q0NQIJeu542HuzfhdYUWInvGgMThJGmsSDB+Uv1CA8MrYywVG3528T2SRCOAxWsCjRJCOsyYHJZpPJWZmLdAe5EyS92UQG2JGA1LO6xtLxNHXOJNgB06ZQpjae3+RYI3x3Zsx3Zsx/bjtk9TxowvGGXR9uK4uei2SFlLdCa55ttXBrrck+tbrnki7J8g1u8Kjnn4qvybW8XV5gNDC7VJq3krzaPyO+2TFIaQVSMOXnuVXDznaZm1lwTzfMX7KyMJQKy/NCyNmjIkilnI+H+JhLdXqW+U1SV3bf7GrLTZAQD1wZ5xQpSKI0jDaxQGMI0LYPVzh9kNaSiqSQbLtnIjLQNxWYdT49+ayyprS+WEpIOwf4JYhVmWoriNCv2oDpXeTWpsymLLTa+g2JHGI90B0YV8RUto99RFrvL+2sIggW62OK3KhCotrCTpTelHNHd02xZGactbeiPL7w7CEAZQqZ6egEgOSnpmSHUKZvGcJv6ngDeFIBY/cLy7i6ReJnlSWcIq0QIgSgbKQwsZYjme1c9ctLJVm8yNiW/tpiTfWWxdtLBUnbm74LhnA3Dz91nMmFO2Z3NHjvruGceseuDcnN16PnPNuScr0Rk3OsqYim86IGp2zN4j0sbcaKE6aR1skrpabqWS8gP+rkA4iecXO8TsRHkg8tAksRpconaJu1yuE/USpsYmj6S9Nm2FPlXFrsx6zfcMVcjT0T6Qm/KZrpHvuQ7318kbjZWfy6QUl/chrqtsRKxzJ5qmdDMEtFebJMEp6dpDKtt/8aZ7bMd2bMd2bD9u+zRlbEpVRKVypZxqqfcMS4t5vXCRilM/hFhpdTTwx+u06an2o3isMtEiWd7oSLtnRrcZ0/NMs0TelxpVOIgrAQQ05u9CtAzygVbF+gsXdQCGpdGZdEJZhpqKH7bSoLX4tUSRn/zjGIW/4Sy2a++pRJJsAJ7/wwgpSikzbThhPyhpoDBrrNgCjQEu979KWTTSFi0ssaLYsbxRNprGpzLStimW1l+YjqnFIXUPZRlFutSU6En1Y6K6KF4pq1TjLT3b3TN6MPMPjKFJ+QsCqyweXj0iVlKt7xMIOpqubaesvQPK4eJNUgsTxScmPbjUj3nL6rMn3zMeOs4T8FauTJdAQuymiyHNXFiCgQoXSkNA8VhZoXkLjCc+Vi2WtyVL0k0WJ7Q1sfw+ATvKmISjBankoFj8swnYvQrYPU8Us9yKdVYr0sA0tlnPRBPFDUOWMgyX31FPYjDc4+7fZpisQOjshrokiuVHMXwBZTXHLBsJOu+ep/HoLxBF2IMD9s8NgLXn7ywZxmvuWWx8+R29uP6c60RFQ8s1v3vxzyF6aeVGMW3Ot2Be5PZlAhu7C8NVtqlY51QZhc0KSWo+az3vngeMixDXV3BcR/15YHVty/oUWHaYPFQ/JsobADS3zMiTGpoKy2o+iH4qeqDA+fr2AIT+szbdPrlFEphwEzAufXSRJUqhYPTUkMdX7OgWDCeIFVanGe84t2oGKps9zkMUjpFYTbVKyCzAa8/ekQc6VUk8ZPYuvaTz3AhWX7vIv1N1iXCwQLWh9ueIwJlAvOCswqilqzb3XMT1PfD2vy6iXORwwme4/M9jyoKzVM67XxYYFyHK/Sn9tmg52fLWeJmGNnfm2i++RxRWbq8MBGkTCCJBdqVNC1GNm0pIFQkkxamDRrXCnLdD0JgI2xcE6ZQxNX9vm9PbBEaNc9ug74HZW0rrSSYxZIljCViGWZ2+F11JU+OffeBnBSIOc276++t0AI4zIu8SJNk/4zsrzXT3zOHhFy7WWHOTgUc7bhKbV3Yonx9smIZal1Zx2VdMYxZIqANcCztkIWYPZh2SvGLJjclXaY6uv2QorL5PYJ0Er6cmcU4X3wPF3iHfO8ze2j3yFJ7YX6WU3XFmcodPMwSB1ktE7vbmc4bslEYtKdBpBuwvHapHxErF1QqxsrCAaYVWtq8QZU/r++Rul1tjLz0gZSHWiLX2uusQmQpw3Ji7c77P3V8VsbKCao5tX7iPqu3mHXD6W6SMMZ9S2vszRO7tVFv2oAfap2T+6ND0pYXw7HP1gwMC5/L2FTAug40d405TlVLTvWX9qTJJe8X5sn/C51TquC+VvWeH1t44vLmFuPrE+z4Ud/+zN91jO7ZjO7Zj+3HbJzdd0XvKLQD/Mf1CwI63HHDVSAOS9aWKtMpCicIzlkFVre1IcAxYDyfmkkfADgZo8ATdfA6svmL+e3uZeLWyXH1pgX4Thtm9NJEWk6RzE09uWRPVA6K1sHidTm2J7jTveU9pC4QDoKBckQv48Av6SHoOhUmW3zpI8DkUyd3ZvUS0KmUNSJ6wM7dNVllhwikAs9xiiZFJNJYQudPtFWJ2X31nQOY6uVDdZeqDwgTLqwdEoZbuHJEClXX2vjn/Lnapntf+eeI1ymraPUcUlM5Gc7VV5snqsTU3iFQ5ufziTe6euUgnG81SFAi0+AExE06gorwYcbirFfu1vUrATOQ42/jCrNjN5y7ydQcTvs87/l6gGSexi1Q8ZQkqNCT+reqyucm41WfAybfsS1lgCMC48NGaVlXZ7echAn8AojSpPBUBQOKV7l58TIXKeo5N5MBmCtUFjMuUVdU+C5GT25/LowsE+A4AP1nsvuR4754nqUm53JI3JSXORXBdgGLeMoQ3Ls0jOEsecHvNOSD+cbkBVj/jPrL93MNXIXqZsUTPmMDm/txCM88+7pf2ks+vMJT2gpkBlZHvOybQWfXQNH9FbaxvU6hOnoV40io9Vm5D0mYwwZxyjSil6mscpR2P7diO7dj+v9Q+uekqvlMY3aJ+5ImT77IYIwzOTtQrxtwWr2l9VY88JcttymiDBfVVWXb7ikf9ye8dnKleqUSOJN4AoNi4qIOguJAoP9M8WVayHGKlUCNPKxYDJJCiukdUGKsekppZuU5Wc3+ekiQENKiUR3d1QC0rGH/LrFDduCApXEF3kdVFIlc2n+JAxS7pCMRkExOLXn1l7+GT1VE98vrFlnEn0XyaG/Zbd8nvdGfJmpQIeN7RWpndBAKZjlVzJzuheyud8lE/nCatANF8gOSNTPZemi9SSov56x3/rjapJFAE+3YpHq4stGGZYtYCjnITv88sTi1Mob43HRADaaWKJQqThMAVtxQIJqt5/o7elhsPwEPTHNHcl6Sk6Ia758lan5Q1Z2p87WUC/ZRs4AKiql17ZTHMkIC1qQkxoYBFWENMHJCIuDIFleAwLj/2IIsNrVyVwpF2hT6f3heo7h32z0MCsgxvmGYEoAFet32KSMesHm1e7RPArP5SgUhRNaOnkfHdQk5h/O4q0cnggGnhsXgNZJ1D9cgsQum8NDfJEp1qfhZgH7OMWIiAsyxjraV8jwicqcJ4XAcG7ma9zUWjn0k9Dvadw+q/Ej53E9AvLT4sMf86AcTOgPGLf/50UPdo6R7bsR3bsf2E7ZOb7vJ1MEFgRGQ86wBfhmhxKXaXW5LE5pWj8PiTdMqWG0NBS8ZOhf5NNRHd7auUa91dAO1VOukVoxEx3gWgv+ApLRHyTCTrjqdV3qfnORTL9hViiXIhwYpVdqZTKhK284nSMs4sZm1shO3LpDwFIFrhigGJjB6TFJ6RJSDd3NZO/HIL+CrEVNhiZ897EFsMZYj5/UqDjKV/TkOkHA1mcci6EUUqxigdaT3SP949kVsADHMXy0mrVMs4Y0w761MMOOqF9ikpQeng0miVnmp/jli6fjSq387EwmP5lTpRDhWzrW+SFawEF8DmIEjQF2IvnYTCmCy+sjkyJVphZKeY5Sy2QrXiO20+o3KbL5MnE609Sxn2RqYvWjJt6juz8Ja8/Mkf2B+7ZwcWk9B4o99pnERPXP7BYsudQ7niWIjxUa4cY5sHVKRyzf6S5d18QNILLmGa1A71rWPs1qiY+d5Ri8RimmOteKlDb2wDBLJFyH4IafvWxgAAIABJREFU2D/le/oixPWjVP/1l1x3Wh8hSwpdQEp31j3gHWbvOL+yjp8FLIkjOOyfkdEh70bav9ItUSKDGx3yXYb9s8A13rqY3jychMgkGM1jIo0smEccIttp94JsCCn8FTvEwqr9WWIvZSPn5PZVSm0e5/S4hDXlJn2w/N6E47fc9+5/eRCs/39of9LSVZ0r0bIoPO046YxmI1Amb9n50gBQhlmsyGpg3LBIwffNl4h1x0SRQma0pjwNRG9yifAM4ocsiaeIyyve6t7oK9WKrrQqqTa3BmLJRbM8eGehAx0gUW0+N8Ece57S3BDVT5KbWj3aoRGQaigZTS26YnmixCxecwEPc06mKKKeJQ4jhZMDfBnQXwT4KsTFNc4ST9SXIeaUkwZGrqImUn2XNtLNF/w8HKK8ZNbbBnuDKJoubYrtVxR1mb+xcImJr49NyluvzFUO+QEVrEzZT/WjgY+Wu94+sUV+xsUwWOWF7iLJXka32jYruXFAypSDPav0B0Slis84T4duFMb3yeXcP2U2JGDiQhayiHXGSquCbJu/L7iwqwdHARR7hu6CgJAvkkaJwLxxwb6pHjJmcM0E4Hk8/mpCKEMMIx1WlZ6aQKnIE2ZRjgvLypoHdFfJ1R2W6YCS1sZwyuoW1WMCXtc/5ykyzoHdS16T4TcXKzZnIzdozX03OeStiyAaN7IQ6VpxfxjSZuW8cestg8tbH+6ehygINVrmJw9sb1KWIWa2FlvEgzLrCEzq2UIeWHFjl+aFM1AvVp6ehyiKpevUdw7DCY2bvEOsdCz6Zyg4H2qTnpV+h0TVs8kAXdtndChIG2T7is/kQsqU/OSe+ulfH9uxHduxHduP2T656T7+nOLJsgSCBZ2Vzy9q0/4Z/wjcUABaNYSi2pVJwBV7nsxTxf/nHU+cynQB6jvHGmpW/kQ0pOohCaHHirIwJaJVIk1TJNphMPUqPcdgVKfJ6E3lNgFEU0OyvLKqTr5Nde6DMwChSu+myqMKUUSrPCRXzud2Sr6mhdaZxOBkoYJyk/rVNyGqT9UPMAUoulTz1455+rnlggcD5TqH5oODA91NXwPLPzrUNzz5VZ20ejCAoaUFo/4rt8DFv3iqc12m6wpUq+4yVgT+PNGVYGR20XYkXl09JEFnqbU5A51iTnyRcuKzAZjORrp8zyw8YQLfvgxRIhNmRbspjYHa/F2ij8nLOBTGFtFeIGt/EbD8nuLZi9eICR71g2l93PE96gd6IOuv0jx1ExNu5HE1N7TEqgf2Y7VCpGop+0uUJwBW3y4YnSnD7E2O4IDuaopAqJv4zsXGob/wWH7rYggPAIodLVGCuSGVv5EVajS67ipRs/bPPPVD7mlBZ6Mj1SlTH4Uo1D7NQqR4HXoHCrm4ickbzAwNKXyjMNYBfUoSpN05kI2O4Yo8ga0cUyYyeAMTZ+/Yv4sfaK1Wa4YzRGVk0khAex0sLBcwnAV62X1y+9XnbnTxXrE+oIWHFDKRTGlzy/FTia/+FLHid7lhKaJxzj1EnqZCcirRNFUpGelT7WjpHtuxHdux/YTtT266ewMHFIimcLCPhPFpzpNGSkWL12BsRfqTO7MkLSCu5AcVpSz2KT1xOIXVpg8xqWGaJXrVuGBMSlq9KuciulV3bgkBJtqsmI/oOaPlaDe3iOmhs/emSmXi34rrrT93PK2BKLY+LFI8bfFDsvizkTHaw6J/1X2Kz8ojgKdltHvOe+2fWqrlo9G/YLS8M4vJmaWt1GGBlyJvK24oOkw2pAKA87cEAfpzJjSI/uUNmOuu+RyrLzKcfGe0Kelf3PMZVDLGTclaVckXgYRAqrqrmPjJHxAVxbLeBKF3iKRxvUu+LqiitT0AIxfsi3J1kO4c2L8SJY+axQa0nv1+isBL0ZJ2OM6S9oI0Loqtw/YF42+7Z/RshjNaZf2JFSdsVN4mYPb+wGrJAuA5X1zgZ3Olyavsy2PCH8YZ56FiluMyRPBq/8xj/9zDzyfAMAullSKjRe5CuvYhICqwcPtSdEvzlGpSNX3NGP9oljbygLx32L8IyPeOVbOXgYU/cwJSApNDBgTDDkT1ap+EGG/ODUTPOsNVTG8i6l2DHtM0B4Zzj2nmzXsKWH7nYqJPNskrcpGel/cuxqBXX7tI0Sv2RodbeoQiwHnHMlF3DuWWKdXjQviLj55Yf+ERcuvHa28UxIDq0cWq1r15ZLl584d6yVOdcIX90wSQS885Jm7slIIcYjx/+f1fQBnLBubaw5A7ZNIECBFwynry67wBLIfi10LVBVzVVrW2aPnCRcuNsj83d9fco3LFwZhqWyxCrB3QfHAxIF60aTOVcEW/tHupjpeh1VOdUNf+FBgW7KTty/S5rEsb2jQDzv8lpJzrHXD+mxC1IXyZOKHwdC3GeQLMtGEUO07EmJN/Apx/Q12G+VvE3G1vfGGJ/LRX6RrDWeLYSrS7PzV+q7mAkqicGoJT6y9xMEa2ge/YtxJ3mRousPu/clbKnu6lwjGVVYMtth8Lt6uCcPMBsTz7/G2aN60huXLpusuU5adQDnUVQpw7yhoT6NlfpINx/gax5p4bba6sErj2+GWOag3M31LDYfsKVq/NR8DFlzIYTHMjs3tkif+cjSmbKt9mccNtboDZG4f+Atg/Iz9UmxyMRRFDP6P1xzt79+uAcLCJZYMBVB7INwXX1iLEbEcxGqq7DMMypGwwq+abxbHjBrh/xk3t6f/mMDUB1UNGo2dmnOPemcCLw2Sbv0JVAOf9/lnAtPDIO4dik0VQ13lg9o4hjdFkEKsVdTfgqEvCLKyA7iqgvj14xtEh6zKMC8+KIl+HuMFK3tHPPPozE6jZEthUbUCxA2J9NQP35m8RszkFuimcs/guQ7F3ePxlwOxdhmzg4T17nZkMpIsb6eyDZbppHVn+QN4mQanhBHGtILN90A7zwYoBqBrL/trF+oj7y7+QvXBsx3Zsx3ZsP177k9oL7RO6whIspwAyd/Ll9yG6iqphJbWwYmNBagmNG//u8j954+YhZnG4ie6u3EbAwIwgqy5g8b2BDSMiT3gwy1IcRlFu3ESKjazUyiQYg1G/pllAuaGrJb0F8n8pG6jMmvu/5qm9+N4s1nMXT8jtZxZeMRpMNialLV8gyvWJolaurMxNn2qOSTg5G4DxdCLXzwSmiy1w+WvSf6RuNZyKx8nvLb9LAEYSlKb7Jb5kZqe0KhO7wNAI/7hozdU3dL8Xr0PM4mmvAkW/5+neobBsn4LXdRMtx93zBB72F0bLsXI48zdWNXefLE7qc1jtNXOxz37rk5VtEosqMZR3rEq8+dxoZafJ9R+tPtruGZW3Cpsnu2dZ9Ejmb/n56oESmcrkE8gZSrrdgIFQJz7WyxsXvMfsnc2vkVldeZsoduIdq+pwfU/Aprp3CFnA7E2GvDPlqgLRTW7e5bj8j8kTKrYAMnphJ39wMZwlHrHKL3GOOOOoOtz8PS05SkQiAmL1hyxalvneIRtcpPdJq6PYOlrXD+S25j1QblzMLhyXvKY489XaOKwvOPdmbx3KtcNwSiuxfqT7z7noMH9NLnJ/HjCchKg46Hpn4KCLwPT+aQpzKfPOl0B9k0V6Gjx1TeQ9dRcE6ZR9WK5cnGPDKdA+CWg+OJz9Nnly3VnySgU0dxfJM5XUqQBjNyR+/DhLYS4J5udt4p/7+i/YdI/t2I7t2I7tx22f3HRr01dQPKc/tx1+MdGavGI2T9S/zIHTP04ErOw0GJaAsoT6c2DzKosWJknn9hnLdfe16FLpxAs5sPpZYDaVaaQOywTm0MKglRKMHjScedMyDbH6LKCsI572/SUzcvJdOrH2T1xUYKpWjvqkT2ghd+fMaKnvqdIEo4cpA0pB/HGeLOrMsrfggNXPGej3JS0zkfuZO89+GRuezPvnAY+/cBiXplNaBNLYdhZH6k0JykDIck3rXqphykOfv2HfDmeM51FpC1h9DWw/o9VRPRBsG04C9k9dLPAXKsvFD4hlezRm0naoHxKAJvAoWgNTelcJqksUOlJrjBJWPQLrz7IoED+cIOo5i7z/8EsXC5Muv0UslVSuab360koBFfzTmfc1LhnnVXx3+yrR+lZfsX/GhlSt0nL5Ufk4X6KS2JLWechTxmH9gKiuFsFCBzT3U7R83eTQPvcothandIBveP322YTHX9Bz3L7g/F7+kaDT9rMQrUtnlDjOK4u7ByZrUK+Xilr1fQKRmxv77CzErLvCNDq2nyexb2mcUImO9C6OlYu6HdJzyPeM2ctajvQvj6gAt33JudTcEP/ZP6f32HxwFtO22Pw6w+nvA8pHF7PbRA0TJSvrmPAzLINpg4QI6E81vY9yTcu3P2e/+JLjr3Fbfse+uf9rxr2lySILdThDzPiUjkW1Cul5HH/f3CEWKig3KZYsJTolSoVPh3Q/vem2V0iiJIuDapt77mDeOKrzN2ljvf23/J02zcoAMvFdBRDJBT8sST3Oeb/hJGD7mSGjVYjhDG5gAbO3jqBLJ3DEhDUcYgYRJkuzHFwstz4s6UIOZ944w1ZbaZY2wHFm2VHrlIool1GC1NuXdL3aa8SS3oMBNFOZNuNim0A/ovIZuisOJgJS9l5FZFmZW5TI4wQZ5+RWuolhiclSklnBIkRhl/Y6AU95awdRniZA896hsMkJpA1PKa/TzCNv6f725+zTrM2Sq6eKGUiZdWId+MoyqAywdCMR+GnGDS3vgPVXPFD7c/JkFXZhRpFVbxhSSq8A0nKNmIKpxR2ciWZbRmLep9TsxVuGKJTliEDQVIi8DuvhJMRsRKb6huiOlisgWBgg35sg9oyLLuQhZt2pCsb+aULxQW8ZH/6egvflin2ftVmshtvcOCy/yeHrgOZ9jtEYQM2tza9XFkLoTOjJgK2I9O+TKL1Eh5hpGLB/yjlRbNNGEAoKgJdb9tf2s4D61lnIiZlabuQGO8093OgwnDIU0J/x+t1lWu8C8iQSBAOnu2sfhcXzliXiy8cszjfxsJWmO5x43P2trd+5j4bMuLAsTDs8i51DrqwzE+fRvrF7mcKBIQtWTdgzZGmHw+aLENPVkZmE7CXHe/+CIbzc5CMlPL99ycN18QMiwDssjRmzMJDYkc8vcSRlAf6pdgwvHNuxHdux/YTtk5uuTlQ3AU/+cYonvBtSrjMCT/rld7SElLUlAM1Xid8q8W4J0PQn9rtZiCb7OKcl4CZaH3nr4MuAvHNW5sNh/8rTKm0S7Skb6JIpmJ31LlrA44LPSffIIdtnaJ9OlJs7Dykn3YCDcgvsXlHDQFk07TXMFQ5RyDzvEGuOUaw7WB/QSlDrTy0jaEa6Tt4mwRzxFYfTEC05X1MfQcIuvghAcLFultx0gUESQQH4WV+aWHZBnvU0C7QKLzyGU8/3qshhrB+MWtS5aAkWO/v/zNMtNR6meMgSi6bYCK2kkBGUktBOvucYLn8gtWr2DiZ6zXE6/8bTjXX0PqLewDyBg97CJMOC7y2erkS3JfPYWZbYVANv/32SAVVGXrl2RjNjhqWy+XwdYrhD/6ekYYAzcJU1udinu+e0ug6zGBmyCEmW00CuYUlrf/8c2L8gx7S9NtD4woTFB5vTrYvrZP6G4zqYR6a6cApbSUYyZtmdBxN+ImfVVwHTjFQ8enYe1YPD7C3DEDDaZfvEk8fcuSTAXZHWVuzNii0oeqPsrFLhEZjLXSNWr65vETPAGDIM8DXL68AB/fWI4WxCd+2jaFK+y5Dv6Hq5gXzhuEb29MpOf8eQ2HDi4SaH5bcmjmNAWvXIMWWVY4fhLLBfc4YWASDfMWTSn9p9Lid6kvOAYu3QPmH2qcJY2WiaLhM9NDcg1p/bP2H4YWqA5WuP9ecOtfj5J9I3+Qs23WM7tmM7tmP7cdunRcwDY1bDCXD3q5xZM3vAz6k+pSyUmF/ep7ibL63AY0uKiTI/iu3HcY9qBczfuFhXvjSB7+BIt0nxvRCBMQBmDSQLL+tdDKAPp4yzVPculkGRbOJUB5ZeWefozbos13Zi7pMql2QMJabOkigB5dpR4tLijyxmyCydYuOYA7/h6T3OQ5R5HOdA+UhrkjoAvG9/RiWxYCpWp38giCGLNu8cc9PnPma+STVMcoHVA61s0a/aZ1MsElrsaIEURifL9xmKjUN9T2ugvbb4nAEnyAQuTAi1JxXQxjWCnZbQAHB+SJSbmVwfj+/6Cxe9DFUF9gVw96uMnsnMvJTBRU2M7pJ9kBsdS3FXgPPi7Pc+ildPDWfx1Jh+wgPj3qoYq77vLwL6sxAlDEV9lL4ABagd+rOA6t4BQyoSWWwdpf4s00nWXDYShFXcPN9bsUoj0LvBYf5GsVkX45X1Pa3qUAb05x7L7zjWUriaGs6H6j6jNkFtMW+THFVF36kGZu9pqfk6YDgNkTIoXAGB79dd8vd5B+xeyIOkZTnN+NlyzRcZlgHIgKx1tGTt/vvnNjdt3buRXoCEziUITkCVOMXma09rfpUTm+gNiNwD48UYC7gCAlvp2Y5L0lHXXznbFzI+q2lt5AcYjIq/IrOxGlyMB4/zENXm4AgoZn2GqQnR2gUY91VijixxaYmMS1q7KncE0Ku5/2VGr7dMGaLNbaJr/mvtaOke27Ed27H9hO2Tm650VZs7/ll+B8Dz5G5uk8KRr62EhmnOZh0tm92LRBmaTDFMwt/DAdlcZGlfIMZinKclKbUiNwBwzCMn0ZvPFiqSw31p8RsrSknN2AA3OVz8UzDNWzIBfBliuRXpZorcvn9mFuLGodi4qBtRrgAEF0+0bOT7ybqMlr8pGWVDshIAU6FapLjtOGMMM9+TOO48sPkqYPWV4lEis4uO4wBPzYCoBlXQgiFy6tA+9Zi/cajuctJtzELNpoTk5x3QX5L4L4vaVwHwLsbW908ZZ0ZwKaGhIrXm7JsU320+pPi8PJWIAxjrobQSPfunnBvNTYp7TsvJLE5+T1Si2TtanCK7SyVKKmOPX2foztnP5doof33S5NXzzSxNGRmtGpjOw9SEGC+PSSOWaLH4jtZ+yDhm0jF2nu9frLIY3xzniGL4WZ/S3jNjKUxzpsAKl5DX0T4h0ybkAfk+I51Ngu0OKPYOxTZDfQ+c/CFEDEBp1w68RzZyPYpBkLecs867WEIm6xz6S64RwGh1GxfLkquE/dQY+yJw3pYrR/plYDw8G2j5ZgP7AeBY1HcuKseVaxf1s/PWRW8NsDXcO+QWQ1bRguaWiRWyvEVDK1eO+0ItalZAvnPYfuYZ5zct4fo+Jd1IX1r3LFcOzXsHP/NR22Sqgflr9hELHzgr4eRM4TB50MOS6dxuBILNgeaWLBvS4RA1YxTPn0wb48/edMc5b9xemaSZZTTBO+yv+cKxooBPHaac6XFmws+PySWZagNrWtJ+PpKlM2GX6oGZSuT/huhmu8moY4ND+9TCGhMntK+4SGfvuWFOc4/mhhNinLk4kL4IlicfoHzu4ZSLB8GylUCAwlec2KrsACC6QtUquR+koVDRPjhQAPvW5lpgyKR+PKCKOaC+p8uaTZapts2QmxxlyAPGkwm+JojgiwBkBL5m7xPwos2rP6f7XKwybL/wGM585LmKa+gry8JrE2jmq2B1xRyqNTAtfBR3dpNDvs2MbhUiP3f/lL/fvWSFgUORcX13+zJtRFoUqki8+dIOwBlQvS9ZrcPcW1XuIFWRi0H11fIesWqrapeVKxfr5AE8pNurRHEUnU7i3NVj0hwY5wSNVB2Z9b4Ctp8HHiZGU2w+sBLKOOP8Io3PcvBtM6pW7L9DEHBqgPqWvOPxJFifGz2y9jw4R4YZpBXiS94n33MOrH/msX/iIki3f4p4kKsGmA56OGBuYlOSwWxueYBlHaUi872LuhmhIHgJmxvqa2WtTQ0we00a42j9rgN2srkHl+hTvsJHHPJx4SOVizx2F8MXomPCExQjBZH9ANhBcRailkjWw7jXNGaUkaqafsPCnmXGwyUUBAPHJQV7YPsGw2pWhy1W76Uh15/z1J0aRG50ueKcO/kuxLqMU8VwQneejJpDQ3NqgNmHv0Dw5tiO7diO7dh+3PYnN125NqpZxW8ZGGR5zaJcDQfVSEkBcxHsaG6oZtR84GlbPiKWtXATr1WuaZmPCxK4Z+8ZPlC2WdaD7pRZxO01rQyA2S2y7PqLCeVDFkMZm88tmy4YKFP83+y9Wa8lx5Uu9sWQ0x7PVOdUkUUWRYnqdvcFDBgwDMMw4H/uVz8Y14bvbfVtSS1RJIs1nDrTHjMzJj98KyKLD7eEpohGP+x4Kal46uy9c2dGrLW+KRUXpVztZPrScA5c/lMsTmq+S6U6QCZjC7CQAa3svuVnCRf/FUBUMmphtebWdCHKVUVsqKyZvSGQtvsqFYvK5oFVph50qQza9wZ2o6miE9Nlnv6T+bM5KPhlQvWkYXeaWvSG1ZufxyIIoMghCjglAgapnpJQn7RntaEF9Eia78v0pDuxilUwI8nhOcsrx8CEuSjvRDyw/3xKKtbjFHcTGlLrckKzGfETg+lMvYptLI5lphfHszhV0LnFLiCumVzV2g8oKr1YsV0vVXSfOyGp7r0CdML2Kz4ZxxtWX7TalPt2z5ETaXf8HNlhr9qKg1kihSqrDcPCE7w9yihlp7H+vYbpFeoHqb7OOMLTXoljnEK15XfevZMOUHLdsk9BTp5WniOq3ZepCDTMMQOI8lzJWM7PMhCX6Dgn461syF1tVUnT7q9J+TIy1smgdQbOiym5jN+y5aEOwOJbthRm4EghtAnj5VRNkqqXJtBv5Oguj11yxM78e1WA1WzVag9KrC9TcfLLY5lMH/Ud0Nzx5+qNjDpEtZaN1t06laTx7o2G3U8ZhDmCKzS0ec0jriAinfqRdEgVxKK1ZbWLBDx+8+n5wqnSPa3TOq3T+ndcn9x0Qz1RbvpnQlT/iAxvejoMqSBkeJlXbr4WzXcrXgmaJ7k9KvTXrIxtLzppy1M3u4CNS550sSKNA+ApmI3OQ5tQ36uSQupnBIHcKhbaknaap1RNSk61kSoZpKchMOSOAMSkXc8xPJsvWC1mQCxZkC7ViCZdJJh1Dr2sUqkcd1+ycsiVcahZ3fRXQmGTKsiMCrsvZd6150ypv0niLSHmyxcRYRbRP6OgwRzEEUnI4Hl+PJyxagCA8SogO5eNa5o2VxstngEJvgXqR0Ma00GjvUOp2NRIl67uHURoQlGKOaoi/2weFCoJmzRHYPuKc0kV6MaWKqB9q0nD20wUseFC5p+PYjSv+Z7tTsHNOedf/JBKpBHl30LN2+hiih8bFKArU/dyF2ZF/pxN1jMw42Qer0dSkPJ8u70TelSmV310DaBZhfmZiF1WCcNFKsGjeT7cPBAf8HOUgM96w3+XhUVIrDKHM97nYRGx/XUs8TdOXNT6y3w/SFUl0uThYpJe55l1BkFDI/eg0McyhdDPJdpKAFfTq5+EelZPROTqx0neXW1+KjGvtqp4OufOI1e7WY6bcYXc6VCaTiFItedzYw98zubf6nKdYwXUt7b4hGSwVyV2E34OzH9QGC7pRWF6RlPNX3M+X20nzwV7ANZ/YNcX2owBZaEUwwjcimInP+PM/OwPfF6yNy8B8Axuih83uMfM3wCrP+cOTypuAMdLvn5zl+XwEx3xZ2+6OkybhpHSmRzcJOCCpOXKDWD3fBPJEKSINgGi8c86cLrEC4dSEFjlVRleN0+8SesnIozKEUAbz6TFepqs6UKDspk0d7ognTlXTQWF+lFjPIfkgEXsvorSXubX4HsKXRKGhFgTeoIoGSAsph6J44Jsl5c3bJqv6+Ion416cuQ2EjBcRlQyJsgAA81d+J6aD0qALeaiUb2niveEX2SFVhLOsyZIIK213Srog+Y4RtO60S0At4pUW43k/EZJgMgjIiUm7KbX5YD1c26IGenXjioyLQYyOS58/a9kBlQ78T/YceRU7D7lu8i83tBNG0se98ze8kHafa6KAb4KNA33onJMlgeRkdZ2FBPpDBRCA/0FY+Ozl0doaMFJ8Gly9rd7vt5wzge88DPl+/UzAEGhuScgWz/ykJ+9IUjT3E8PF820VUnCzi18sh/lswFi/cnv0Rw0fS3CtHFFO41WrDA5suKw2lEJlbPiQjeZ1EDx4Ahiqp6TdXMB0t59NGJRKDHzeaPMgGtoyMZBhBy8qnhpZGvReiPvS00HQ2wmhlFoyGZYfitMCctDuiQKz6YNiaynVDbhnOFHhlMqhcr89eQBM5wnHF4Iy+gZr3E2TNq9VAXsyuPHfP2aewHkREk7nvNes7s8jhDmlE1Uw0Yq0fyc463j1WQbmlkuOdUlNICOosp7nA77n73pntZpndZpndYvuz7tvZBPuCepZLMme+lJmQhTW5Yru2yJqJ0AR2J6zIwzlvTRThaNVH+RIlJyobJ3QcrV82Rxx0wwtnNmgGQSiX5bInsyLzLT1DJ31Bw1ujd64omKX8L8B9KPQjtZtg0XEceb9BNHp+zKlSv29l4Sg/dKYosmTifjWVjJZEWbHkUDfsbqI8pJDfAzD5dU4vgZ27OkCJDpkdey2nFY3zwqDJfsJLRT5FLfSoyK5qinvZXxTZ0EFAPCKkD3MmaYpcLVzHlmgIwEFONp3JpVHoE14PhMs4USeleyrDCyB4VKrEDbD6Kj/6iqzqm2die87RawWxpT7z8X0HKOYvOYjfDNIJ9bgKBkpfvyrCxCdj8TtdxwNX23GTBhZaqKQrLaCLd8mX46nthPqjwE8mnNUWN4FlHtFA4vxJnqeR6BTBzfTDGK2cjcAMfnHHmpJmAUa80MRsc2FtqTOfLP3RdSPc/5O8yoSq5frlTzc5BbXRWB1Z+VgKEEg48vxNS7YvWfLSbzv+ufoajt8nsAxPtkgcJf1g4FvOW4KBWQLecm2p2MuwYZi0Um5+YsvtCy04vSaUThttojaXkZlMudX6w5Vsgc38ONfJ8194nZ2+l5ZIacxJerAAAgAElEQVRfKvlmZlAFWPNiaTn5sSiE+iO7RtEE0J9lqtKLM2IOPjDA/E0qKcg5KTnbzGoHxI/GXdlW9Gdvuqd1Wqd1Wqf1y66/6r2Qyfc5GDFZAINBe59pKans/oB450p8Sa4Ic/XHoX6SAD15A56nYAmj60Ux4oWwn09pOZUvfif+snLaQCfsX8hM8iinaj5NJa2T6jHqrvuryXuXBs6qhB5mr89oOC81gyrpqyUkT2ZIoQN2X3DulX009chqkx4OPFndXFR9d/w7KJ6i/RWK4xrVO1T7aDmtwywKST3BrwNiRz8FK85o1ZZBg3pQFK8IEKV7hfEqYP9SwJR3nOMiKtgHCyhWolmcYXdyfa3QwAZx51rxuxouIxDlGj6fqtHZW5npGcb6hGZSAvkZwSU9qjLzC5387PVE83GryNms4s+T1ibeC0oCQts8u59ADytzweN1BolQiPj2wDmgGaVibJIAJRQ+mB7FgDxZAcckeHS4TBiuIud1O00AZ2CwYX8doH2m0ImaUIzYk5pm3Lx3WGEvvqV6TVuCZnbL2XCs6FU8nkeMZ7HMaPMzlNWb0bBKzyb8xVFPzL3zOtzwGqogldoju5/cXbglr01sSMOs5H7N88fcvWQxSfa7jTWKN8K4Bja/VsXw+/iMf1dJEnes2GGNK3ZXOQLLrUUIIthOFpDECohdLJFefgZJ/k7Y/irSj3mWSthAnkMP5+JjshPwWDwXCnA9i0V8pQJBWr/I9yIVqqFNsk9Q5Zbn80HEDeNawMsdf+/2lSp+CtmMP9MScyeQ47qMpJv/7E03x3DP3pKrmo2xESYJbJZXZsAt1pKYqjiMb+9QBvIZaNCjKskSALD6I3OUspLHy03oBbG2O+HwWXLgct5YjmK2hwlVDS3lytVGlXhyM7D9ZjIxN5tkJ/TbLVHMbxCzpDUVOfL+swkFpjyWn6P9wIfjeD2BguOK/98tZMwiwBoBqlRYHt17Pnzte0X3/zZyYxQuJxLR2sX3CmarUd3Z8qCwjSezoNqhmD9vvuYmYTdaWnKIQbuMPhpuOvsvIrml82nD0Z7tqZ9hMmIfNA8DP5l95OhuN0cxA6p2qoCOGSTTI2/m+Wu2eBlUXH6rps2qiZKrp4pM04wCvsR8vVE24AyyMTFhsosMHbCQHDuf29mcPnDk762fiIBnu0vlgeWftEhQqV6qtrT9TApwlx6HFwSp+itukqFJIoFXTL6VzTaDSJkPnB/C/StaM6aomIr7kRmQigTUlKdJUub3ZjS+2k8slfZWVI1Zcgves1lF6RcJ89diaRnVT5Jcsqk6D3E+t1kFWj/JGGPg5+jeSlHUALHlIdjcqdJmZ+Tez1AKl/6S15rmRTx1qXxUhX0BECzPMvjmUcZrNTdTZhxK3qKnBDrW5BEDfP61z7Hq3MiT4c+aXrjsd3xP3WuDWNPYiKZJLOBUAJp7LZl2PDwXP5DRUW1lBJoZL/3E4MlZa1SaoaTAZBC1jAetHCgfSZx/1qZ7Wqd1Wqd1Wr/s+jRlzPHEHc5Uab/bOyDVCdWGFWBWa+UMp0wNA3IFKUocac/1qAqnNKtMtq8SDi9SyX1yy4T+WST/cUkzZ7dKooVmlIfveMKPK3LwwiwhWWD5XcLm61SoLm4dpcJFUd2owM/TPEo7NUtIdSrmMNSUR3TvlGQ50XIxG6vnLKysrALYyoZGWl07jVX0yFZsOOdndqvAeJ0Ldgm733r0N1Fa7CijC1Lu+itR7Gie4r5lK2kPqrS6Tuhb1U7MW8S4PdOGclunEttO7YD2g4ZbMbIl+0EArKRiTvmNQJyHAnJmnjMgINGLVKhxGfzJLR5bTV7vp18T1EuKlcLxGUrqc/3eynhDOLFzfq/jOhU6Xu5ijjeJHZT4DIxnEx8324ECrDT6SzH2WQkNKUjluwfaO2lVA+AbtpA0mWdF172T7uCoZVTGax1rcp5TxdHC8cVHlobyuuOa781I9aaPmt97YsWd7GRu79YBqUqASejeK1IrZVzjO37e/jog1KQ4JVEYVjug+wDM3gvQKKOW3StRyGmCztl8nsAyQI8SlKyz2FK9FtvIa/CxIb1Nxc6StK+JhwpIJb5TpbJd/TmRYyzUzwzwmZ6+D1nlFht2zP2FdGxeFVtJJQpGQMZEW12M2kPHDqza0krR7jQNkUStmv1ckuG9M/9OiSE7O5pYc3/gv5koXYfnAhoupkCFrFzMHTcEdMseNEYitXIqc+4S2U1PHd0n99VP/+fTOq3TOq3T+iXXJzfdZAQYOBBYCa1QZCwdhGbvgeNncQLLEsnZyVAIkK0C/YwnEOdVQoHCRwBJ4N91H+SUE6cjJBL+SS2hOsbueXomzXlTbKgu6t6qUlk1D5x1+jlQPWqhyRCEWP4FZb6ZlUrmoFA9aZmzCYXqqDmDHYDuQ8LD3ysxSEZRP2U9d2yzO1fC8vtc0bI6dBL70TzwfZujLoGI1Q6wDxbdjxroAuoHjWpDd6rqSUM7he2vUpl3+xl9IWY/oqSvJptK2m5s40RJEnCE9C5WZcMFOwbfTVWGSuLIdUbwovgFtAmzby3cOpSTPNpEEEqiUfpLUtv8/OP3w7sq/50ZBZysE4437JSyJ4JfEUTSA2fZCyHVa6dkLpwphQAS5/JZtWgFwMnCm0xDy/PH/L/9ghVM8yik+mtV7ju3ksDFOmG4Io1uuMxAsCqeGrk7yBQr7TOlTgBeL055UnlmFWcyFI6kxNnj/HsJS5X7IGmp2lbyfYk4o72VqrHXBIUEZHPzVChguat0K/6+LEKqH2nRmU3P8/OXTepzZzP/Cx3Q1JgDXCE2hVGUaBHDVWCo5QUxCLeMqB9RIneaO85EH387UbWSKLtUAPwylvlpshQP+Tl/xs15v7plLNhQpnKagZ0AY5AIdhFvYPeXLDsEXShiqrxmMsD+y8nuNdYC1KuJ0qaigIwyv7Z7lKCD9gP/PP89nyU9smtjAALvl4wtJCOg3pa4l58T6Mt7wM/adHNr5gVsCQ1fXDfyZVxO/Ebl+b8X38vGZHnDuVWS6GnaKg7PAqV6EId1RYQW4OswOXfKOVIJSFUSPibzn/wqFuVOth30Yj2ZN4XhKnI4P2a1i8LsHfD0myQ3KTfs0P000jmrS5IF/Drg+DzRrCYBw7NQHPpzVHSsALPXstElbL9U8p7YzmSFWr52SCgpFofPIvy5x+FlBPaWEeg3KNZ87iwgtpEpEeC1uv8Hjd2X+VSc0PvjDShvtonMCxnp0J4yAzmSn1Ul+AvPFr6mR279QAOW7C2cH4L6zsD0Slp1sjWgJk6odtx4hksexO0HselraKs3/zFLhPng7F7x3+2+4OGWfXhDC/lv8n3Ogdn7VLje9qiKRHjxQyqpuFC8lvYg3qfieTqeJThJ5fAiu83jq2wXSeSe5iopj3CWzIVjqgEPBrdM6J8HycCjsdPxRSqx9H6RYI988MezVFJlY0PpKaLC8MJh+2tyo5OB3N8J41mAX8TyECfDcUL+vpnQi3JQx5oPdpFVP0x8W7+I6K85GkiaPzd7KzmBq0CmRMPPXVIgPNWeUNmQhwkeKhKAGtcRtge2r/jfxhWw/CMPoEEUg3mkMFyx+DCDZKSJfDrUHJ3ljEE/l/d/1LB7je1XqRws0FKwDLp4OoeO9xPVgCzQlIwp9UD+dntLYCxbP+Zkj5w5171T5Z4OTUJ/ndDeqcIPz1luoeJ7e/hGF6ZRBnTNgAIKZ1YSFIRjrYoP78nw5rRO67RO6z/Q+uSmm93xM3d1+T1Px+joMUCFkS5KktCw3URUpfprxYQjgwnKqWJgM65ZrfQ3SZJHpX0bOAjPngDVRuPsD2ILmdNDA/0bUjtVCRmsc2uOFZo7ml2wvefpVFImdCqVxXAVEdqE9p4nHX0UFNa/s+QGXkKqOuHfRNJzQoPC2622wPpf6F2Qnf9zuuzxGtN7FIPoaIUy1NO8PKeftrfiE3GWYDcG1aOBX6RCx8ont1/EYuqeqWTas0Jx50EACKnGzx09KhpaVsY2QvVaADvg6ZuE8Zx83NwyuQWBq1hxLJEpXG5JSt769zT2qR/5+vUDP29OnVj9gbaFx0tWUsOF0LYOYliym1pR+gaIQi5O5uW7zyfdfjZGSho4PBcvDuFF5upN+UmXb47U1lcbhcW3Gst/1QUkze0kuw6CPLPX9PrQA6t5JT4Feew0+86gflCoHzSg+Vn8jAo4SApB0ig0JyrfNLp3CthZmK0lmFYlxCYiVQmpjajvDVQUGqK0s0qoZ3av0N5PwKxfxZIRGCtynodLIHSRiSo2IXYBfhWLf8PuCwV7VIWeFrqExQ/05RjPsok9rwWB4gi/jEg6we50MaLRAchZcptvhOupJQV5GWldudMFoIOMMWId4c8Cr+siIXT8JaYH0trBn3naPkpCcgFsNccPbHX5R+b5jldi8N/FQosbz4DdS3LaUUUa8lcoHRpBaVVUscoxpRlgx3C4YdXu1hyR5up3PP8IhHcQ5Z2AxzMax1eiqsuTgY9B53/zpntap3Vap3Vav+z6tLWjKGOW33Hn378g4FHPXAGUSlTHESW/LJkpVuP4nNaDpgfW/0qbQarSJpceu1dFtNDKfNceCA7Qoi3h8RsCabHiLChn1GPUdFmSOXH3HjK3IXjm1pxj5XmbW6WijU6agAXNq4UE3QFnf+S/23+eSuW1/JafFYmgzLgWapFDcR86XgNJLAGzPaOfcdaYtBgji1m69pxzzb/TZb5sD3TW0k68FA6cjXc/EsSLtQg6hG4DqchjxcqUuvKE6t7ALQTM0QB6jdmPGmrQJYbG9ArQqZhPmyMr3yxM0Z6zdH8WYHqF5XcEiqot55VP36SSD6U9CjE/V7FZOZTByUpSYmPD1OLhPINICWEVCJScBUCzsjm8DMWez+44u89m28BEfXIrUqmysopa+Yku51YJu68iNr+JBRTef07qVpgT7B3PqBCMopZMBsDBIBvTkyIX4RfAcONLdl5zzyoxmYTmESW+JVoxND8PQunj/DbfcyVDSxRkdqfoUCX3u0qAXwT4WRKKndCfxglsCg0r5uae94hfxDJfVF5inzTveT9PxeXNHBUOz4HdFwn1o8J4EVFJxlx/ScVWEqvSPP/PmYK509CDElc6PrMI7CiBiS6WY6zQRiAA/tohdgEqsPvQAVBPFczWFFqYHuUemQXEJrLjzZ4KmtfZLSPsRovggdc1iLUoFN+b3hvx6ZgoYrHhNcpRXioQPM/PThZXZDVZBs7yHvexK15oOQWgXSddyOqn7CeByf7y52y6p3Vap3Vap/XLrk9TxhR39O0r9ROGwHiomMR5L8h8LZLdcfJnYEQMZZfK8xTYvgJyQGD4qDoBJmeg7Stg+d2k3/bzHAeTMH+dycyxJNBmCghD7hL2n09/p6J43MoJVW0459Mf0WTMwARYlf1GezpnZZ9a7VnN9OdAe6sLpUqPQoa2pMMNl6woWOFzrhnFg3f3Uirh55FeCOKdavcau98EhHlEWgSe4geRnj4TyeSdwv4VkefuHa9f9nD18wg/EynvXubgQcFd+YJo56TW43MRgGjKewGwytb0YoiSqqwi57bZAc3IbHr3UgkNilXh7I0qsUyxovChu2X17+a8Jla8V2MDHK/pt2GOigyNBOSUXt1rQFPC2b1R8KuparM7ztViw6rF7iYaWQ7LzCyC/pK+C0OOA6ql8hkUzn+nYY/sRtpbeuUiAUmioKo9308OfqRTnNxbavKVqO5siXlyK94zsx/ZhbX3Mt9+5H1dbVhe5qTqko6bAH/moRYOw5cjxrM4VabZg9dOznr1kyqRNLlTUF6hejT0H1HEB+p7A7M1UgWz44qNJOFWkfJ7+WypEmZF4rNbAit1YkXtFeIsoPlgiv+wHhX8MjJteBGLz0D9pLD4gbPdKM9DaKUi3RnuA9nRTnyRg3gk832yYrVHmYkeDCAe1+179ZF3i4Ld6Y8M8DWSpete9kbQvQZMwvw7YiW5QrY7DXPQcOvIa7eDdL2p0FFzd2SPCovvxEVwz++0v0JxQtMSktrdiiub5TUczumN8jenAbcPYucmVKLufUI9dzheiwrJ8uLU8gAyK0gVLmuOLx6ym3+TcPg8FMWM9lSgufm0Ue4/Y0uWs9FiG5Eq0oz0iGKuPpxxUw3LQEqKgnAtI9wZaW3Dc0d+cUsjleGFg7vwiJ1QgBpg/yqVfLCk+L7sPlO/+JCoOAFu2YQnU7nyg5tpNwBblfpBFxAvNHww+hvJVXqGMhJJmsCeKqohqqCqLcES7Tge6K/E7EXaXkjLWuwJRelnH02xN3QLAE1AWHioKhJAvBrgVxHbbwJvNgFQxjNyJpt7qtGSFZrOnS43XM4eO7zg6Ajgwfj0a7bt1UaMhPYKRg5SUuAmm0IVJGHhQQntjt4G/bOI/hnBK/tkxHoP4nEg6SFZaSgHg5F2NhmCHPvPpaUWVZ898h7tRdVlj8LPPUtY/okJIVkxqUR5pr18frHJTAoFhHEr+kUw7pwb7SDUyXHF653s1JraI6DORsR5kBaaIKveG6gPDXA0QM305kpMwqlmM8XnI3T8vHZHilXSKIY2zT0PUSY2RCrM9hp2T8A2598h0fioeSAnWwUe/kky+/yMnyk15KeGRQAcN6nr/8cjiSESokLoIgFFoCgImSxC0K7aKdSPhq19R7BKjRqX/7ctaRmLH7jxZy6zOZCTjIzRySiMdooJzQcBAucR7XuOBrRHoWb2F9OBlhRw+IJeJlmZWdJIBgKm4znNobJRf6bx+Rl/x+EFMKxUMcSvdvKcSZqIPfAZrrZ8v60Y0A9nJ++F0zqt0zqt/1DrryrSNl/lEp0n+PFawR2JRFE/DUBxCJ/bbn8W0L3T6J+FosfP4FVoWdXQ/i8WJU1sptx7gFWCOWjmjVUJsYqIll4MLD0Y7RO6BDVqObHpFJVbwTAPMFtb3n/+b/qooQ+mUK70wFGAdqxMfEfAyxw03CoWX4Hcqma3pfJeFUrFNq5T8U6AuBONZ6xKqj1w83+lYv6ebILZapijBnqDaqMwrpLkOcWSG6d8diiT19V0GEuWtJnQMNlUBbaE2bouzEgdwt5CDZpVVQLUfS3XgCKK8Yyfo9pqjGuh8m0NUhOhpCV9+X8eMVwFAg9zUtP0qGiFeJi6Ema78ToMF5hyuRI/R1aoHW5opWhGVjWxluu9DhhuPNyVw/xtYtUnyrD+mp91uOSv9Atm4OUoqWwfCcWWt37i2Kh+lGy+joCSW0Xm9V3yO3MLeh0kk4rRPCJBouG5Z1t/5hGbCJiE/auA4TogtGJxeEbhRXYR0/IZ88jM1gH2wcIvIiulBcdJ0OIl4SalY/ZqiA3VWtl1zO7Fm0PA3GhpUzqeUVFJ0FkVX5EkXhOscClMqB8UjjcJ9aNGbGkdqo+sMN2C1005odZ5jpriyuPt/2Kx+A4I8yg5aYoUQ+lm21uFw8tAy8slr0WoCfSZLUcsqUp4/Hvp/iLBJ33kSEQFUvayHWS09LnIfgwqKgznImYYFPZfRrh1xHgeSWvL4LC47iWT0L7TSJX4UDxJNNJBwYyidBVXuww85u8me4fECsUVMYtUchK3PfJ92gMNzqOlj4NytDxdfP83bLqndVqndVqn9cuuv7rpXvxzKMPjSlJcbRNYQZU5ZxQNv5SYUpVoT1pSBqwyrSO2Ec0DCfWhS8Us3Qyca9GsOSF2sXg66JGAGJOAheqUfQbaWKhGACknqeZwKCzI3yCZOUFVkYCSTawKOybuqshh+XCRg+z4mbq3lDyGhr/bHhXGC5GrWqGSxAmg48yOMypfAiQ5mzw+D3jzv6fiCEaJZ0RYRKiFozn4j5wh6kExxmZgpR/mpCxF8RF1y4jqgcR6CgNUSWlOay/VkUZ/FaFWDlgEmPMBauUQFgHxzJXrkoMdxxeO3hNaquRHiyT+Bj/8Hx2QOC+NrQSP1gRBWBWwyygRMJb/vXzOTqS0NWevnEMT/AxLX0zcu7cGs+8sqg8VHr9RRTyRhNZWP/AecSvOxld/0D/BA1Z/4uv3r1yhDfbX+R6gUCcnPbt1LIKc2HEWqnt6CEOxis40OAykKULm7/pAEJKAsi4RQ0wPFsDxOsAveR9WOxH1RABdgN4axDOHVEVgSeAzg2LDBeeL2dMkyevEcwf3zMEtpMOLxB3cOiBeOIRnI/SzHuPLkb4bQbCRRmbmr/idu3VEqiL8PCLWcXpuqgS0AXEZiugIibNfLx4ZoeWzkyq63pkjsP/awz4Z+XysWMOCwo944ZBWHmpU8KuA4VkoHh0qKIzXHn6esPsVX88tKQTqr+m9wA6boHr/LGMYfM7O/0kLeMzrRodCYP69gVul0hGwcqWZOUNgef8AEO8WYPFnLd9fKsbsbineKeIgp504j4H/X0Xg6WuF2Rvx9hAv57xX/PfWpzfdBDx+bfjCSSzwNkAMVKRlCzM9cugdm4T+M6qhzF6jetRivwb0V5G2j5XwMJ/zpo5iDM0vU9gMSQCWNpaNPLdMwxU3zdCJneK5h6oj0AYiyusEszdAUsVJv3vHn9VOIY0ELjAP6L639BwQNVg2VB4ueEP4OU1gsnVh6ORBlGV6tnhQNOPICQhunTckIpzZ/m/5RwNz1GIhJ+BAFOPsQM5g6BilTSu/SIUNAH3QhQ+cxw5+QUQ650zpkZ9X31cIXUb1NdLeAkeD9LZD2lZo3laof6zJ75T3ApVgP1j4OYp9nl8zysAvopinaH5Pmt8VY9zZBvJ3pfJelOM1zcqdfDDYI0oSbLY31E1AvBwxfjHi+CuH4/MI/9nAfLoN78M4C/DPHIYrAWvFH+LpP3kBc8ls2H7FB97eVhzz1AnIo58L8mbzuCk/wCrQStBLarJfJFT3cm/stfyOxI0lSvpDE0tCSTawzjaLw7mg9OIdoFRi1HuU0YVOCIsApROqOwtEhfbDpOWPolbLXgFU4QE4GlS3FW0xnxT8GTdrdDwczPsa4amGfrJUVwqgY/aa33GvufknBbMzaO55cEBxdKC8QgoKEN+DVCck4Q73z/j96YEgFiLv9VgBzTsLd+UEhOO9jyhgb+L71oMmwCsBBtpJQTTykEvVZEoDyGcCC6BiP5pEUTqjIm3zK4Jjfs6NN8x4bx5fRJn5ZVUmv4vmg0Jzp8mjliRwPRJw7J/xejWPHKdVOxRD/ryqHb+jzMMdz4Dr/9fTFnM2jVCzkdZ/b53GC6d1Wqd1Wv+O66+6jEUxes7qsOEMCKMpwFoy0mp2pKuoUQFtgLv0GL4cWfFIdeYuHX++pVZcO4W08nBrVseIBBKoqU5ARYNnPXcILwaEZUCcBSBMiiQAwN7QYauNWP8LWy5lhIY1TJVlyWoaNRCYqKsSgb80J0g0Ssqx6RXS0iMsQhkjVE8aacnqz+5V0X3HJiHOOGZJMubQI82bncR7aEddd3jmcP4voaSjZtoMhB7kO2D/RRDdOSvGsAiIM9KKbM8xTv1IupNfBTnRI/wikOOoWTW4ZSpAJ3RCmAdAk0bnVrHQogrdbhFZNbbkXCqn0b5nxZOpNABw/ju2YmHGyjCDowAKvS7WvP6xmhycFn8hLay9pQoridoJjzWq1w3UxgJHVmX6voYZSN1R8rr1mwpJA8u/pEJ5UoP+yYgktHSoMz2r2OZWo3lv6A2wNaifpNsCimE3IADvoEgj2rPzytzuZCP0keCT3WroIzuU2dup88gxVZkbnS02zVEheEOFpeKYSNsI03ooneAuPTDqAsTVD6R2JU3HMwhIG7qE1T9bcroNwcr61hLM3hvojaWyc+D7883UDUz2qYwi0j0d/7yAxUgErZNJ0EfDylgBalSoPlQFzM05a24Vi7JsuCCgWb+vyjWtNuwy7V5B7Sz3APm3CAr1A+8xc9Cl09DHTN3jGKb9S8WRwhW/l2wJ6zu51xLpYqlhRRxrgnFmYOeYo3q043cALf4eYuegXR6/CHV1+KkboJO08e6W91X9QF+W7jah/cBCun4CPvwnW2LHVGBlnVWTP2vTPa3TOq3TOq1fdn3ae6EVUnD4yIy6AgBWaSS+K8R5QPNBAxUH7Bg0lElQOyueoaw6qg8VqwSd0NyjzAxhE9I8sJrSQFoENPcaKQK7X3vExxpxMFTVHAxgScYObYJuPexOs3qNCpuv+fugeaomDfHUlapGtODotWi5E+AU4NVEPWrFy6E3sI8W/SXntMONBwYjESCsOJs7Bb0coZcj1NoRxLsa4G/GQpsKDYMkx/MItbF4+tpADwrjZw56NQIXI1TF+aZfTvMotKTEqCN/3vRUXelBYXzm4Z85KCNRJXWCWgtIZjijS5bOVGgiYBPMzgCdh8pOY1boVu0EGOU0WABAEzGeJaQqSnIsgbPN11IpijIpdjS+ztp8atX5P2IjWMCjwvGafz+ecTZvtoYz3asB/osecR5QPRlg7hGWHn4m8/hZgtkYjM94vzz9RoQSLd/PcEGwdlzLLDUC7mwydE8GWP2eyjq6RaniZBcaAmp2pwm2LANCnZAWAeN5JCDcBqjrAXHl4W9GfsdyDw7nUgHKDDarp7QD0sojVgnhaOnlC8DsNNJdg3C0iJua3tTSCdl99stIUDbxWZGwxNlrhd1XSQz9pYLNWNfSI10O6D/ziLMA98yJqAYYrzz8WUC8GBEvRjjBUTBjd5k9CpJNaB5JL4s1VWm5Q8pdLQDUj1pm+awm2w9SzXf8jqot3cS045+pjgLmSUXaiRe2eBfokWqyWKeSFK0CAdbFt5rJ3wkYrz29OFa8XkpoqM07WxJ9D5+nSQBz6RHqhOEywC0pwAjziONn4SfUzlih+HbnriL7h/sZ1aR6JM6TKuDx7+hrYY+k2dkjis9E9uIoNMmfs+kmQ5f+UPMXV2I6rvQEbkEx/WBcJaQgX0YdAa8Qu4D2nRFpMA1N4izAvq9R7UXutxMen7Sl5shhfv/CQ41aWAmcnA8AACAASURBVAnSrtyyhUl2auFjb+FvHHSvUd/a0qqrrQUCRxjDOb/g2MYJhbaJKqFzD3PUhU9Igww5PGbc2HJaRYmRPvdFoRVaID40SPcN1F2N+rZC7C0w0Mgjc/ySTeRZrh1v9JrgVdxVSJsKyrDVVkEBC4/URgJbywjMAh/4bkouhdNFYQawFUyBbRTqWIxUkgZHF14hXjhUrxtUnQNUIpCzB9ROWkqx0jMDgAjY+cg2+2gKz7G5V2Jtx1bcHDXat0SLzUHDLcVMR6SzepjaN/JgpbWUNt4+GoQnHqoqyMbtdbn/GHWupK0WgDJzdkU1l20ROdqgakrLoTpckOv79Hc0UDleC/hyxkh1qgZ5IBfjIwPAybVbOX7nuwpw5FOrUcNuTDGESgZobjXGC7JhivmO07RdfJiAprCIsM+PmF0cYS96zBYDVB1xfM5/094BqOTeOHcl5eBjY/OckkA5tEL3rzVizzZXCWikR7b+qorkaCfF5zYBYeWRgipG9O0tf54m3FRswbJ1Dy1Tg4Pkr7m1jKBmkUZDknhB0x9es+qJVqVR9oEgnGSVUFRf44obcJjFYoxUS7oKRzTCh6+lABo1ix6vyDNee5heYbgOMuYk4yg0qYC2yQDtOz6H43ksY4m8waqgyMMXhlNOvzA979FkyKfPSjQ9CFiqeV8ufpBnLwCrbyPGM343w9nfsOme1mmd1mmd1i+7Prnp2j35Zx9bmrW3QDsf2YJqtlBhRdOWDPoAoKJFA/2vB1GlSfWjAHfl8PQbqSbnGURTYjbC9pAmKFJVzwLUzCO8GJAWAUroXWWphHjm4F6MPG2rSMBLJ7F+E8rSoGFWI9TKwa4H2JlHtRgRrhwzs5ZCJ6oT9HpEchqqDggziYdZj6yij0YywUgBMr3YQ0q0CCvbiLDyNCAXc3HlWG0kQ34pjgb2waL5YApIxVYlQdkIf+0K3xiGVCYdaHuIpYNSCUmUQ0mzyqkWI+rzfqJsHTSqxQizdNA2YLx20IamJdomVDu2ln4VYDpfTLihAd9bApeaxh+xntpM3xEUqrYKw0WkscoBuP7PXnjWkMqU39V4BoQlDbZXf+a4IVakdyUboXoDjGyn9cHw2nZTJYUEtK+rQqFSSb7Pg2amnpgt1fcC4EQI8BqxfxXQvtcIc+Gk6gxQeow3nkbbSwKLyhMAVTPPNv+pQooKduEIkjZUYvmbUdpjdlDMeiO4GS0IHtfku4ZLJ9+/hh403LFCCBq+r3A81DB1QL3hKGW4AJo3ltRGGdW4ufCpDbnlOe4JQMkbgxJAVhGUuviddCw59kaxE9VOofuugnK6GPofcrKx4nMbZ3yG7aNBamOhhtaPqlSL2TRqEJ+L5Z9JI/PzhOEqchQUFWAEbNd8xrNSUwcItVMicQw7kiT2msNzh+MNu7VM7dI9xw2+S1Bbi2g5bmlvIb4guoQf2I0p1o7VVu7pxL+f/UBz+dCRJgdwf/AzPoQ5hkt50i79THjSknIdauEnf0aLy2iB7UuCj34OnP1xopX+mzfd0zqt0zqt0/pl16cpY46zl9m7hOGcp/rxBtBaNM0bFKqT3XB2ksELRAW94YlNCz6CWKrX0DXnMOgC9H0FtAH1B0vHJDHnru8155SRs8rYW2ih90Aib6odkMTWUWme8uMSUJ6gWo5EqfacDZlBId62VK7saoTRwI9iVr3giV4/sUqNTzXMziJ5LaF/CeFQAYazrkzGrvaqUOdiExHXDqgS7NzDtL6EQyIB9fWxzJSefks6kLvgfDgOFkmAMPTCRUtgZQUASWH2WqG9I8ACsJNQlhQW7RVS0PDHCsOmQegixqtAM+zBwO8qhJ5lqhssQykHg93nqlDT4mCKUTxmAaYJxe0qNlKNbCSR2XNuN3tLIYXuqcC7/ztLOpXE33B2RqtPs6O5tG/FCWzFikp5DSw5Z/ZnVBMmmwr1yi9YXbKCpPsaOTsRsU1iE8jr7JassqNNaH+0UKNCc8vPlWe25qiQalbXxYMjKHTfV0AC+s88kjO8FxOQvEYYNavxqICOM1Hbi9vZkiqrOA9wZwHzHwQ/2InnxSjVodDhlIkIQUNbfn5/sPDi42APwHAVOHccNKqdBG2ueA8hqI+c4XiNwpxgn24CdBUQzzxu/yehRO0N6kcF7PndJwP0zwPqe8PIp5hDGwlMQmbA9slQmJNyJZ39GXifh5ZguOkJSLq5xN9omeknxWelilA2QTXEc7I3hDkA8czB7jWpdlFCChqZ/UYFt46Y/wixmYyIK49YpyJsyZFA/RUmoDcSuA6zCHNk5ZtBTFpTBuy/iNj+1kM7hlVmC876SaF/lkosVsasvLi8ZTe7HKirAvEVmyN8xLrz4befrmVPle5pndZpnda/4/rkpusW/PNww5NQJQkD1JEodCPE7L1h1RIUlEmsZJvIeI46Ssx2osuVTUhPNedjB4Nqp6CeKvh5JAVjDyAx0jtpoH5fQVURuvOIQZHepSDSYla3yVFGW7TxXYCqA1TDkDpgQkqTSUhSGSsd+b9tLNVrMoDZWWrQu4AkfgbKgW5Q40dzrZ7uZLGOqDYa9Z0BDoYS1A0ryyTuZcoD47aG0qno2NEGqIrzLzsfga2wM3Si4MNp1D/IMZ0oVXz6mn6l6DXibYPkWSHoXiEJ28N0QsWLKIblzXmP2fkRqkqwVaCAoGFFpTwZE8pGCQYF1JOF31VIKw70xhV/7vCCUmgv89zHv2MMCsUh2Xg7YfeNzEQDv3q705xtJonfFqNsu9WAV9D3NavnJ4P1P1neU+JdUd8ZzmBnnGmbI6+RPhgag8tsNZP37R4Ilx7DZYQ5aAzPPfy554y9IwMi2YTUkhWS2Sz9C88Z+AMrH93r4kGgLWl3dj4CSUE3gZ4PCUCvi3/u+p8N+meY5MMKnA+LF4UKlKJrnUoXp8TYO1neZ+ag0bxhleznKFJtMmYUP7/4dIQ2YfV7Dft9i7StgNsWOBo0D6rMvt08lfsgVhFmpzGeBb5HO0nqk06wj1IRK8A+8dnOXrJhRhc2PfAXj2es7toPmobgDV0DTS8zVEMHQPSG92ZQxSOYYa/CcHGTMEiPjPSyj5zJHp+JJ0QdkTxdyZJNZEdUvL5hTouB2EWRo9ONLXRRWEt8He4P/NPsTfHLzvPsaCa3s16c7KAoSLJ78Ug2Yo7v+HwdngvDq8sMnY+6/Z+z6SaNwqkz/WTSsmwHDvBXvLnsQaH5QHCp/a5COFpyQgPVaMNZQv1IN3g186L0ofXa8CyQRrX0hSOarRqxdHBnbHORAKUEyGiZn2X3BCdUBNTGInkCBYi00zN1KJxXPSrMfjDQ6xE6b8SDWB0a0f9/ZC0Jk6Dm5LSaXhWTl3QxyhcqSqaOwIBbsZ1PNdtmNUrS70HRr0HzTq5amtGkmv9ObS3MxiB6TXpSUFBeE1wDMH4xAEfNzC6VJJ1YDMY1YDqP5pG8xOwNgNuGr/VoyIs0CeO2xvHHBYAE92YGzALCfU3FWuJ7S7sKZhSfioHji+S1mNkIx1LoSPWjxnCR5L/pwut0CwEuBLTxXSI9qE5UnCWagfO+0sxFs2JwZBPCImL7NXmy3VuF7oMo/rogqcYoRudJE3QxPUcizT2/5/5zD72xVDxa2Zx3BtWdpdZ+zmuiDA9+5QlyokpwV5KcnCYuqXIa8aGh34ATimOkj0S0+Imy7XhNBWf3TsCrOiL2hq+lEmIdqaz7dgZ1XyM91Wj+QvVdtAQcs4mRHqneGs65WZtBlbSEpKiAqzYKT/8QioFQmAegjpLewA1w+a1sUEGjvTUIi4hqYwj6+ilFRSX5npx8d0umTvCQ5IZNPwKq27IR1rhOHPENWmiU9Kmo31uOGExC+2NVRgvVji16822DnM5ijpqG9F4h1OSrz77jhm96BXNvYfYGbhl/4p2RxAA/1lTo6YHWlM09+cTaMZV69UeN7j0PUj2Qj6wS/31OqAE4RqifeC3qJznIDf8ecp1CxwTgVJGnnAw3YGh+9/X2b9h0T+u0Tuu0TuuXXX/VZWz+Y8JwSQCt2rIU772lEsMDfhUwXgYMV2FyCBKTcRgS3WdvaEUIkxAHQ0vFRlRjEUJ9ostWewfELlA5ZaRS8AopcnygbISp2MYkoaOoQQPnI5QMt+E0XG9ZGVvmqSEoHL4Zke4aKAWYuwr2wULf14hSvdiDWMFZCiwAEPToePorL+8hTjSUWCeYswG4GKFXI8zcQS0pgMjWf8qTiK5bj2HXiN6bgEr92R761QHRa6SBNCE1dxheOui5Qz1zMJcDqqse9iARLFK96vMBtgnYvRRi/8sjTBMQ136KO4qANhHV3KF9sYeuKNCATlArB+15qusqIFUk9i++57VVdYCuA2BYTaIL8M9HhEuH4YuR1oQrD/eqR1pxnACQiK5WjvaQByqTYp1I47vuYQ6keI1X0xjE7jW0YwsabYLeWIQOePq15GiZBOxMGQGNX4yw+yxsYOvXX1G4AhCkidcD0oueAKe43dmeVChlIrC3HDHMacBtbyuYDf0Muu8q9Dccw1QXPbAkfU9bAqDYWoxnQjFaBFaIFe8VtwZ233jYBRWDACRdWKF9bzC+cIif99DPj9DnA4ZXA70ifKY+sWUmSEXgr97yTz+nu5npxR9E8zkbLph2rI8aMBGX/4XVpFtGHD4DsHTQTxbRApf/2WC88qgfNaonXbqF+kEjdnzdMOO945d8/7EBzv+rKRRAmsSLku6gJEtQS9XH9+lWBM5n39kSn5Q0u4FoCU7bPUoO2fxHTHsICMz1l7kSVqy0PTut7BfBsQFzzrzYNiqvJN9RYfYOgAK2X5Mal0ymlGk0t4w1Kh2ukjFCKz4zl5NIIruNjSv+3OGa9Nn+ktdj+R2vF5T8zM/edE/rtE7rtE7rF12f3HRVAvbPlZxmpJAlDTxuZhjX1B2nmtr+HH1z/IKne2wj1NxDd9TQpybCrEfO0nqNesN8eiw88FAXT9b+ijNdRAVtKFWNo4GpA2wVkIJGSsB4LoKFreFM+GCRAmeIaDnL9X0FbKoiQ579oWZV8qFBuPDwFx7xwgEHg+Q12ofJRBlHg7S3UHoyEjd7etPGWYDvppM5DIYVvNOIPd8HDKtjtyCVSCUgHCxs64Twr4D7Gv7PC4ybmjLNJNSzwVA+ebQYDxXUX2YYnxqM55FilZ0BBo0YNMZDhe69Qn1nKO3cVlA2Cumcck5jI9yHFuH3S1b1SQFeIw6GESRt5GuC9KzNrxPNp0eDdKSc2q1BitPBEBB1GvWPnEcmx+9LBTExl8+mvKLZuAfUeiR16l1L3wqRfmLUwJyeBnjW0xPAJMQLeleoSLASBwN09DdWEt8zXnl6e6xjASzNk4Waeb7Hxxr4QEfp1IbJ4xVAiprvCQCigt0aBpa2FEoMl7HQnvxgYFt2XkgCWHYR1RM7uuYHcdjaWFQ7eV6eDMJgSBur6D+gBCDOgaK+r1g5B43hHAI40zciLukR0DzRpa1+5H8DxDg/UaDiZ/KwynXTMlu//0dS0FITMV4KNe/FEX4Zcfc/87MMzx38PJXon+GSQLNfMoKp2hh2CRVf6+m3lAS7JT9Hf8mqtX7M4g3wPTiQeiZ7wuErxw5EMQXZz+l54lcBw2XC8UVC/5lDfy5doXTF7CB4n/gVBT0lTXjO7qW+m2K3kmIHGtoIdxbhlgn9JemJiOK/UksC9ajQ30QoT8Ct/SCCmk5Sz1tp2P1EEdMDSupwNp3P8+ntVwrto4hT3N+y6XoqR5iUKppiAV3MIO2QF5AnAdUTQQmYBHg+eCmwRdIHg3jbwrRUoMVKEHwo4GJEkjjuJOgiNHmkKfKChtFgPJBHGZ2ZPlhOxF06qse6BBwEgXUKqaWRjt1rHP5u4Ps6G+n1oMAPFIH6hxqbr6ahPmaB7AINuHXA7AeNcO6BOsI+WVR7STiORKOVAl93zBzhWMyW4cjPNHvDz7ECmjsNdTkgPHOFVwyb0LyzBeFFUkhOw6+F39hrtkgaZGioBFMHxnZLRllSBAiTpUmP7jWGN3NgTgvNNGrU85EPRxNKS4RRQzcBdqNRPylg1LDzEXpnCicxHCqYg4ZaUZ01XHuCelEBue1WQFh4jhtWnuquqGBey12sCcpl/Xv7XkNtKiDykMEo1omPFbq3SlIBEg9nAWqqPaiuOjIZ1/SqWPSFlUd6qvnQrhziuSvfY1h7Kt3OArQNSAcLs7WAEgDN5ERm8rtzMm7VevjeUol2sBzHPPHPassUgqzQSsJVV55Mnva9GP+0EWnlkNYOzWJASgqm8bxvxA/EtwLoRAVVBSAq7MXasr9CaZ2BKXW4uwWLDMP7OCxoXqRHGqMz5SGi6jxSVET4NUddatSIZ74kM9QPvPZ2q4tlZ/VgUD9yw6q25LG6iyC2jMDyOwJ69Yb2h0nJSMLLZ65YOCnLa6R6g/qB9o/Z0Ke54+iuv+H7QATa1xb1m4q+CInXtNroYlWpB45C/IKmRdEQPDt86Wm2JMstyFyI80BAuw1MDJFk4CRJLM0D97nsr5DNm5hWjpIwAqCkoyPy7zJ4erhRYlj0N2y6p3Vap3Vap/XLrk9uuu097fJ85iOCp+ticaSfgQH0cgSWno49nw8s/zXdqrIWPBtp1/caoTeongzGs1hoH0rTPDnHbqANUE+WlY2ckuy9ReGk2folA8QzmkGHfQUcLTmCnSdfcObRrAdEy9PH3NbQc0dHK6H4aBsBA4xXPMY44A+F/xsGg9lrg/2vAlICrR0Dq5Ig1pZ2w3GA2TO2SD9JVHBSmL9WYqIM0s2CRvMA9DeBCrGDwfqfDOx8hKoJSqIlJUzZyEy3Shy2Kp7OsAmmIpgWjuQCu0tPmtzcYX5BY4qwCASlLgZW0vNApZEzUE8WSf6t3hugY8VqBqkOvCI96nmPVDHhVTVMd1YfGiq5IvXu6miQHH0QYkWKldpa2Ld1Mfn2z0eYvUZcBtpFKgBOof8sQF8NwMHA7A0zwwCkM1eUhORHWUAsFY83kWbbR/KSsw9B8wiqxsTEXdvIqJha2mvDPCwEMHJqRgtJNbDKh4lIKw+0NC03WwOzM4hRYb7uYerA+6YNCEsPN8+ZaLEAWqFjZeXOA+Jg0L8UD4I6Qj/UfE/5vgOQEpCqCCva/vZWqvuHusQkAayA+2uCftrzmsY24niTCjVTrQQg3VqJlpKKe9Rwd610drwO9e87Wno6he4NK87hmhWsuwgEQfcKbh0Y1xV4X+hRwew0ec8NrS1VZKsdOlIhdS+pxAN5taX7k9enSx2oUPOMx8nRT3S4Y8q0W1FV5ucE1Md1ZM6hp8NdBl0zB3q4ok9I/cgcxdDF4hBYUomdRhQurR4VbR8Hhf1L4PgiMaE6m6nL7qg8yjWvdpnTzClArIVaaABkmuGp0j2t0zqt0/qPsz656faXUiEK+TynkjaWFY+fAXFDl6TY8SRXCjB1gLkYoc9GmDoUU+zx1z1UFeGWEfPvZD6jI1JQxU0riYggrR39S/cUPQDgkNoGJHEsUwHAjnNfM+cpn6oEXUWYzsPYiHHbUCXVRoQrB9sEdOc9q2XDahGdh1o4LH6Y1DRZF69sxHDOqlj1GuhoCp0pc/k955m0HiSuRMy0j9cioFCJqrlB83pEVvhoIh7/RwelSLiHArDLCXca6qki8PiBf6cSgJlH6A3CwUJvLOpHVqvBG4R9hf39jJryO0sVVRWofNIMujQ2Ii0C9MIVBVkaCLCNZwnVjmKXqqWBPOecfF/x3BHwUgCaiLAIqJ80TEtdfPZcTksPfz3yvlEUgRQHOkhgp3gKh/ualYUolsKSP7f7klQhlaSjAj17VaATVvi8L7E9UGK+PgvQ6xGqioijgT0beF1NFCoT5/uzZQ881qQlLgLSlqCWerKwtxVinWCPnEtqk3D804rURfFRWP43djP2CIo7FkESjaVyG6l6tI+GKkot4o+DRfAa5o8zhE0Nv68LFdEe+BlmbwjcqsQZY3/F69B8MFBy/9gDDdFjQ6Vn9aaG+bGlQ1mV6HuspIsJVP+FoyWlrDc4fu6pCL23gKJ/LcBZZX1nUD0ajBeh3N858TmHQ0KSviGNSGgIWOlBQUs8EMAK3T4I1gFxC5M04NwtMeAzYfaGFWO1pWOXOapijm92hl4JA538/FkQT2beD9VOPLcfLJWqmpSyLPhAIqWNbyIVrwQ90og/KTqamaPCeJ7juUSsFad4sHGF4miX57wqEUxLRqrgj0VW/9ZNN1ZEJmMFidXmuGF7bNgGaD54flfRuDwCsBFhNIgiCbZVKNZ8yWtUjYc6G9FfAe7lwAejCWIDGAtIYZoAfc6wIVVF4GBp5uFlJpGTVcWGLnq2g9GAhs4yD7HzkRuc50Y9vuvgRgs8EHWPXpMjPBi4maDE8wD9umXKcALaO1Vs7pB4Mx9eMm8szNnyFUPkNQ+kVDinslPKTWhEVst0C0A3MprpLcxtTQBtEbD6HcGlOAuwew1341Dt+EBn8xJVJcQzDy/po0FkwHbuCCrNZaNxBqpKSElBdx7Ba7IrNE3FMQswWwO1IYjn5iL1HQyamwNUr9HdAmrpgL1BDBpp5aAMTWyiAeJoEBaB76UNMLc0BwqN8DOljacqK2H/OXmtZj0y+VXTijFls2sZG4RWuNqjAQaD8Rlz9pQC0mMNu9XcpAVsSZnmqXjfpKhRtR71zEE3HnpgJt7h/RxaDo8UFMz5SEOjixH+zEOvR4znvLfGfY14NZIrDgBHi90/su93C96LRiLVg1gL0rgb8NeO7+WpIoPBacy6Eep/2KK+6DnSEAtMv2ALHyumEyun0F9xjOdnbJ/1oNDesa2PDUE3LRLpMIsYnlHeO1xQkp2qVFKi4VQBM3kzsnAZLhlNDpXglwlnvyeItviTQfPB0DRmHtG+15R8W2D2WtSPCpi9VejeA80HGSFEjlziLKB6ogLQ7Kgynb9WkvqLEiGvA9/L8ZrfN5KkUUvCdtJA+16yAmveT8WQR1R+KnKjDy3zGvPh7FZ8zqga5eeu7w2aO44Wkk1o7rRw/uX1M4tBkrEn+0zg/A8cPfq5BBhYfj/DOf/u/F8SZm//hk33tE7rtE7rtH7Z9Vc33Vizje5uybe0O6Df1wTRRgC9niqYc8fqqWJLFgYBbQINkKGAEDSUVDtIgLIJ7mjRrAdkqzZzVPB7RtiwgmaVGr1GGjXNxcVYw7QB2kbYhnlUqCLMzJGbeqzKZ0AC0mCgz0fE24ZDfEmFNU8WzEaTnx01/I0DEo2+QwNko3XTBFQPBvNvqQM3W8OWTU52VUWMFwH20aC+o6mG3bOyhEpI7xtky0alI6lDK0fK1DwKgKew/UcHNHKqXnma7WSaXCP0LIhpjwar8MA2P8WP8rNsQt3kOYhCOliEA0HKMBqEDiXKJ1mx6xuZ0qxMwrAlz3VcA7qi0iyN5PWlg6XByDXfmErA7C2g64D4YuD1G9keQtGAOwX6NpijAgaN9Laj2fflwJFRNroGuyszEoQyrVD4QiarRnoMXDvM/mLZrg6YxjS9Bu5rxKCQ/riAezNDdIb84F7Dng3s0HakjMXbBlAJ5nULNWhEp6lsqnKbBprObwww84CjV0D9BKAJxduAFRzoPXIgd1ovHL0irgbAJGx+XGHY1xj3NcdHjiY2pmfrTlqWR1h7JiY3kmQdFFIF7L4Qdah4PoQ5bRPNQaN7Y4DPjxwJ1OTRx1lEzHmEie9Nd55UM2Ci3fV8jncvFS7/P+Dwkv4N9RM9H4bLxHijBBxvIq0t58Duq4jtryL6Z5JF1iVGDkWF4dUomXEK1b3B5u/Zmc1fJyg3RV+h4e9Lilxxf+6Binxps9fY/8NIoFUTSIut8IAjI6OinVJ/23cGoZvA/FhH+LUoJjXDAEKLkpM3rlMJRbBH3l+X/4Ugpu/4vWixcXn4xhRPDkDoi5kj3rPy7W5PJuandVqndVr/YdYnN10jWfAqMoG1eQAWbxJWZwdGV/TgTHXpWMnJnDBFKqN0FSlw0Ex/1TYUsUOcB5jbGt2yp5OVHB1Jszqzc8cqYc4qMNkE+7YumfaztzxVtImIziAlJdUejcrdMAFwsSJ9xMwZMqifDbSM3EiFu/JQmvry0AJmNaKeEQTUJqK/CfDPBw7sa4/w2QC3IuUlLDlnKmIDBaALiM8HjK8GigrEkSzJ3NOtCH6kpBB7g/BY81S2EWgCzIbVl9pZ2k6G/DlEA+4VdB04p6xY6aqB0ULproGtSPlBUFB1xNhzHp684u/vPMzSYbbsywwNvUF7c4Bb8TuwnYMxkaDDkvQggnGk8KVcZS0CQxw9Xb92X1Cc0fy+RU5WtjvOzZUmjQ8AQdG9QboaOFMfOXdG4NwT97VUfmDFmAD1WAGB1n+ICqrz0AeD43Mqiw4vI3DUxe8grVmBu+dTPKtfEvT1x4rf1ZJROkxkTvAvBtKianpUKJNIV9tb6F7z88prA1KNd16ofJGAbSOKzKUjwPhQY7wRY/S9QX11pKdGQyK/8gpGrCnH8wC/9sWe0+753WcLTuVYVcV6AojMXszhzz3GVUIYTel01IxhjspSGBCrhHA10lYyKoyX/DtG1PB9H74IeP+/eYR5oGOen4QBfpHgZxQO+BlpjGZPx8B6o8THQbqVhp1NXHlEm8SMntXn7qViTNag4c6odIwWYnxOCqkaCaipCM6JmwjtdIlVSlWcQmod4FYBauWK6i8LH7RTUFWCOTJAIXYBbhXh1gKWR3FRswzeBIC3/yvjouavJ0pcBhTzrLfaAtWer+9nEuFzo/D4zadr2VOle1qndVqn9e+4PrnpJkUJXGgm2ebhWsF5AyNZ8EhEZnGwUE9V8R6ozgbgbYtuOZC2MaMYoO1GKA3UHyzClcPQV4W8DvD09jcOVUXpZnQGamegm8AwwLWDbgM2v+HMxUkVFzZ1mXWmJrIiqyL8Q0vT7ypBf9fxRVSCezGSCP9YQ9URuH8vqAAAIABJREFUdj4y3vyRclfXW1a1TsMcNezbBmrhoHVECuLhO2phRYBsCQWaj0voo6ki5j8K7WjJOG1dB5ijgjkfULUeymuZGyrUtxXMfQXtQenwnNVsc95DzT3cOsKtpYoLCjGqabiUSLivP9+ja0dAsTIAEmxD3wp9MPSy2FdI71oc/n/23qzHkiy70vvOZOMd/Lp7zJFZlSSrSDZ6etG/1y9QAwKkbnHqJouVlZWZEeHTnWw4ox62+Y3Wg7IhstDQgx8ggaocPK7bNTu2z95rfevQSq8dKKYwPrQSeRKhLJHd6slh7p1UV96I7GgxCdhH+d9SUSfcnbvI6KYPEXW0YqPcZNzKow+WHIVqFVeFfBMoe0e9nuVk4zV0kfrVIL57KyoRfSWVall6nMVAiQpbp4uM6JlyhQLrklR3plBODmYjFLgnhw4SRdNtR5HsDRJdVIbldKEWm7UqEps0GKjlM+QmyzU8WKnMk5yM0mQFlD0IP9YOC0D8vpJrvfx3pUC+8cTZ4M+VSMZ6MWQMb1n4tBpzWn6+KRflkJ4UuU/E6yjfz8I5KE2WWcrCQInXEW3EeGRGJHz08PyYK0qdhSf9bHaqMv0ftKhMFtuzCkqi26skp7ZKTiz5Wk6KKGAVaX+Sez83ctLzV8upqBHy3+W51iLxym2W042RHimapfcrBhF/VcjrtEgRo9zTUQnboZWgWfvxLPOPlVS7zxV9XIxKZbCillnCVnOb5Z42mXAdsXWCJl+A8MWKwuaZJub2mvYO6kf52cNb+X2rJ5E56rDseUX2Rr9R1P8dj+FfDTF/dsPoIHlo2Qkl3dkkKQFeLmi5CqjwnPQpGD6lC+X1zHSu5Ah2tNhHy7CXjS9b2TgoouuNs8EMckwB8LMlLhAbM2rKIBhGgY7wFe/2eXH51PIFt380l7QIW0eKzZJAcDTkb0fSZEletL3Fa8oqygtDyREhbBAZT5aBXynyxcSrSPGG8Vxj7pz4uAGSwhzleFy8cAr0wZKTIs2G6Vpwe3my0C4pq2dId41It2pJ1yAJDi9eRUHUjTJ8K0XkZCVo+u819b0MD8rZyWfLgphTN6JHjd4yeSeptgd5AViTyFnh3g6UrOhencnXnmY1C+1+0RRv3xzlqDtD+akV1sW1lxbKooVFQQ6aq/9UUd4tet0uAYr4OpDagn50cqzd+SXHS5F/bpfBqyE72P69kvaOLfgfe/KXBvdoUAeHHx3qJBhBPQnYJwdJH9Cjxh2Ql7A38r1YeeBVhPrL8/B20cnuJmgS2hTK7SybV1UYnuQ+VCtJs3BXM9pkqi4IrtNmWI6kymWqf2hl8NIn0dB6jb/OlwGbO8gLgyw4Qbs35G2UQWuVUG9HOeIPlnxyPA/nyiaiH+SlFnvZYJtPi2Z2b2WDXTYIsuLmP7mvrb0M7t7Kfewlc03pgvq5IVvZsNNsCB9mARpNcv1ykEGoWpKChw8i1aSAe5RWxUUr/izNBIrXpE2SlJKw6IXPImssSmRianHaYQtqGYyDfP5LgRIFfF6CAieMC7sSnb0+GmnVDWbBk2bm20LaV6gu4k8V9RcjbrqiCDtJIjezXEsJORD9ffd7ycgzZ01ZWnh5GcqXOguoPy4Oz0mGaKkWpsp8XZbfSTb0omXvE1mZ1DrVQXT4YZFs1k+CDv1X6XRf1st6WS/rZf1p1y+bI6w0mOs9oL5GVoDIM1K7eMizkjyxRSaiFPj7RqRhS1M/N4txIGhKFmF3/aMjz5Y4WUowuL2ivtPoB3fxidsnS+wzdjtTbmepoAeLOywpvO8mkjfU/1zDaEScryCeHHFfU208ZhCIeH6o5XgzS7tC1QnTJJRXhNGi/eIvf6xQJjOeavJSgdsni95bkcJ1Ir52e6mq405oUfUf3OXa5NlQoojW7Wm5aGe7HGMRXoUWO4/5LDQ27RfcZZMkdkUVUhBxP0awl2ZG8qIWzGAaHPONtGFy1BibsCZTPcqRsd7MzFNFKYr5UENWDIdGWAn/21rcQ6NB9ZHTqRFBvYZ8vQxbBoleMrMc6dUiFzv8JqN/aCnnBWV5tBDEjZd3gTJauQZKjqv5Kor0DaFKnT9KdU6dYTm6x7ee0svwpawS2QmqTz059KOTCqUqksx6X9P8fSPOPy/OJR1g/pWn+99bcpvhS03+YweDkVPT0S040oLrZchWFoB9mORIP59qcfGZdBnGlKSYvvPyM6sMbaK6M7i9luq9FSi//VHiZ07fLKaOqKQST5o0ONTeLQMmaX+B3Ku8majv5f8WC8M3CXWy5Kt4wZKqAjRJSHhJTBlqEwjvPfaZePaPLZwt+c28SBSROKKDROWoWV/Qj7YJkmlWyzG9vl9oaG65v+oMk0Et5qZqv1Tfw0L4U0WqQY0881YMLmVcKHl1InktFexkZEhsCmUVseNCGasT+kkGmmm0Qjdrl4F7nUk7ocLJsFdRgqFZz8y/ni/QfT1qtNcibbX5YkJi1ozfLu2oqlDaJO2mpFCqXCSnKDBHTdiIe+65fdDcLQPMJH/5K4nhydWSEznJydgdJTPNnpesNAft53/FpvuyXtbLelkv60+7/oc24FzB8VdcPNYqwunUSkDdILSmZx6omjXYjLGLrMaUS8Isix/brsKSklvwH0RqZpsIRqI2nvsjpcjQKa0luFDrgl7IYNRZqmwvQwxTJeJfDtgnMSMAVBtpSFu7JN4utKtSFexKAN3aLALqVaJ4g98KoShfBWyVRLhuxTMf33rUu5E0CTsYXWiWoDsABsP8jVRPqZOYEvcgkrRcSxRMsSKX0VH+/TQbdB3Jb8XunDaLFCZJKKTSBW2z9FaTNPZjB/pJkmKVzlRfrPTcFqZxDIbxnzeEtVQ687HGuEQOi3EiLuS2qBj+3cR8JcL1khTaZOwA/nq5zknCNdNOwjTV8qsWr0UG9M0IRSRepRErsR3hGbZNVtQPEmzJJPcGC5tAJchHJ7Zib6SvnRW6jlLVZC7xP8UV9LsBZQv1J7NwnCH82zPqYJfAxuUkNhiGDwV7MKQuk1cJuiQnpzqL0QUI940M2LSczorXQpDTmeZHg/eLnHAdIWmxuBf5+QyGsBXyWjHAWf6sZ7vrc8ijOS1V36whCkBbj1qGoJOFSgwyabTkeongGZYZxiYu4Z5yPbOVKi2+m0nPAdFHh9pb0pJYPH/j0Ts5DVYPhuZeBnNlJb3m51ghCtKzztKkz5XIwNTy+5qNRy+kuzJaMSs1LAyOjH8Tsb1AyfPyWUQqKVD5XC/3z1ns+HrSIsurE3hJDvZXMuTUs3BKSl6YDEqeaZLwHcyg/x/pwtOhlqF1AftgL0Mre0as95Nca5YEYZIMsgHhcSzyVOU1/ht/CaYEgf5nJ0Sx2Mlz2/38zGiQv2dPQIbuizB8UyOnE5UWyWn7dQ/7f1u/uOnWj1xSVsNabiQd4Xp7ItfyzzhaaVxP4srSDxXRixaRotBuyShTMiEvBWwX5fhi5U6Ok6Ndz0yvxKmWdwHrEtkb6p8F0hFmi9IZV0dMnYi9PEBKSUJrXQfi+1lu/CbKZttGclm0g4NGv56gTlR1EK2qy1iXMF2g2s7ixHoeGCGKC5I4qtTeonWhuxrFEVMXTt9lOQ41SZJ8bRYH0DrBSgZi7iBJs+n9JBd8MJcIcttEQQwqeRHYRwHKuLWn2syyic6Wqg1ywxhRkqRthI1AcsLHGTMpGS4oqOpI86sDuRKsHYMhBUO3nqnbQHM9UpKmf3OWn1uk9dNtJuJsBeEYxX1mukBpMubRCkJQLVlxyzOVg8GcJbJcLckRqV42pypfIOPaK/Q6CFRnJS9BO4C9mlGbIIDrJwujIR8rUT0MRj6blc0yTpb1f66Y3yRx/rydBRaTIa4z0+3yvfWRcjsTNwlzMmz+RoaQ6mRY/Y27oEPdzSSDrwLUCbf20EbMHxvmW3k41cFi+4hbyQvc7ZbPG5ckEb88dHWGPl5QhSAtgXIzU+1k2Lj+Wxmkliaze3PEruQe1LZg+8i8W1pHQLoJuDbQ7QamW3lBptdB8gFrAePrgKAuV3Kv1TcjppXpvKsjfpcY3rKoABTNq0E2sVHDYGlrST1mlMGVMAdEtcCiH7eduLj8taRH6EGDK5eXYfeTIBTVEqFumyi6ZJeFD9ImzN/14oZb/jlBk/rE6vvlufgwXTbE+UZQpsoskfFRUrhT84yJFUWJqaRVkG6lRfKcm8dkoBcNOoPgRumkAKRASVpclVrSpckK5RX2/BVp2n5mwbvK7+y3Xzd1d1ocugXGV4r19/LvF8UF6qWytCL+xZvuy3pZL+tlvaw/7frFTXd4K7t+dVgQdnDx/2cnzWi98+J0WkllmXohgYXZUjKks5PqZ2k15GAwLl3eliggKby32FGJ91mLtMM0kfnbJXU2KdKnllLEFWYGLTi1Aq6ODIdWpGSzJs0W7y2uicynSnSYrpAeazhbxp964smRkybFZwmNLDvI58lZCQ9iaZ3kLhEGxzQKhlCFxekyCQsCkKpp+bVMlaETYLfKQj57dnfFtkhabRLMnv3nFlSRWJ6TRf+3nrAMoigQvUF9qdFLUqyKSoYcuqBNvuheTZWIUZOzpr43F3dc3080VSBGQ4pavoesmD93onOshQHhmigg6uXXqWsheqV1wg4K2wWprCpJFzZ1JN16cSVtPLHPtHeLpjIrylWQz7bO2N+12FVAW3HkxQ7CsZLrogrl2mOuPHrtce8GylVAz0uMSh3hbDn+ey8ZXh3kUTSx5t0ow5T4NbE1T4uT73bm8B89di2a7NO/CXKSmQx+X8uAMmipvsJyPf/idLkvzaRI+4owOOrNTE4a/alGZYV7NMRWvls1L62JaYmQ6Rc+gBfcZrVbqrm9aILHWYaCdR3kXrbiCjt/kGsFUFURoxfuwibKSctmjMk0nxYZ1yytvRI185eOdF/jD/Ul1kolkdaZNuJni14FGQytA08PPe7RYI5aeBIgw67ZkA7SVjMuyQkmSCWYb70M3mZNHKwQ0GqJRUKXS2J3fb9kHwaN/ncHTBPBFeJ9IwPksmSrfThTgsHcuUWzvlTek5HYJfeVPKhspum9YE29DI3V0WL6QNpFIYa5hao3WNSV/+rm7KTaVzoLl0Qt6dKLnrcYkYWJmxDmV9KWMKNUyPO1nPSnay7PebZw/FYxXcPtf0mLo0/2x+buX7HpvqyX9bJe1sv6065f3HRF6Fs4/kp6ic9cycFLeq3bc3HOqIMogu0qYCrpKxm3iJ4L6NFcZDr+c4sezMXFRlDkIP2/1EjfJkeN+X1LiSItKUFTmkyYLNOpkoqiA7fyUqW1XyM4lZaKIGfpKbvjEjZoi6TCdosh4Y+NVM9JhkupLsJHtRnn0mJeyNKzUqCM9JSfXVF6FvqS+6kSN9JgZaiUlPCEdab9LNQlVSV542uJZGEyVLUMLeKvx6UxJPKq+OtRrqkrmCqLOaBPxF6qPHM0UGVSMORoBCoNNE2gqiIF8FcCiydoptlxf7cmPNXEwaF0IQTD+v2RsC7oOhL+YUNViZsIDXlfYU2m3s5S7dYFft9JEvFgCA8N/NAKc8EV0iC82HkDaV+h9xYOjupRPtv8JpCjgi+N9LkjKCfkLAZL9btG6G/HivBjh9o7YcTW8ln0lYd5iQSqirgIf6oo/9QT1wl3EsG9dhm7X0wqn2r0g6P8uDgRo6Lai/tJN5Hwub3I77Qp6J9rwk+dDP6QiCG1En6CHxzxbCWFducJHzz14+I82wTsg0Xv/GXwU1ZCaUtBqr/zt3LKQRXaOtA0gfFcMx1q5kNN/4OSgdFitshZMQy1zCIGCRotWZGiIWxEyK/6CF1E1wl3PdG+O9NsJ6ngbVkMSJp0dMLjGCzhJmKcOB3jSsD+4VrYEcqIk8xspH+coka1UQaVw+I8nQz1vaHezoR1xp6eWRfCW8mTDHbb1SxyymgwVhyJ5nqWgIOjGGRyEgNQug2Ewcl9rLgYnVS1BG4WJQO4YHCtDPDsEpygdEGd5fu2qyCVrFvSrY2YomwTZaCvl3TxZ560ESOFHcUJa85CiWs+y3doZunhNndy2s+OS0Wbaunx6ghf/qORGcWZS4zZv3jTna+L2Cz9YgXOcPM3mWlyAjevgMFQ/bGi1FmOissKsyUFLfq7AWlkF6h6T/NmEBD1KpDbhNl6uvW82CDF2VY1kfDBY9qIqyO7t0fqm1FUBUsGVnMvQzRjMv5Y0f5XGU2bxX5obKaqI2ErdkmVFN31iO2CRJi/mXHvBjgbtCoUu2iTbaaw2ElnDRqqtRfXWZENPLtCuI2E956wS9jdhFqFCy7P1TIkGT4IYNk2EddEXBvI9aJ31Jmu9fSrmeTlm0prScbIQVOvZrabgfV2pLkZyU6GBumVBy3Hv2Y1406Qbj0xaZoqsutHii00XyQHDAXdepJk3yDuuRxlMzaDotzXmN8cCVE01SpwSVn2D4I6tIMif5zgWrLO6lcD5ldn2qsJ9/EMZsmjSqD6SN4F6ndn4kqslaaLlKypvjlJGqvjkqWn+kD56xP27QhdpGwD9s0oEJdeWkPPL6hnRKHaW+q/2lN+PaCjwm9lIypZyfVRhfx2Jt941PsRVEH3QdozWvTjzbuzHMMV5KhQ3w5U78+opDA2U/9zjbqvMDZfXoJ61Bcbrd8uxUjWAhgqyIC3ksLBfnaXLLS0Fq21fbSs6plNO7FaT3RXI9tXJ06/lmO0GTR669G6YKsoypejBltYbZY2xQJoKQcHadFxA0oVgrekJJpb4+V5o8qkpGmWoZ7What+lGevSaKjfjtL+2gTyHc1ro7koNFW7vXxvdzHNIn42wE/ONpP+pJCrV2i2k2YxdEH0G4n8vNxXheaJmCriD0piT2vBYpfddIK8NeJYjO6SrRXE6ZehmB5GcInRZzlOWnqxQX77BEwSKHWSivBNFL0pU0kTk4KiaRFsZRFqVOShlHjt19z9uabwvg+EVeZsJGXvl8LwlMn2cdSK3/lSr5/O4huOjWyObvhX7HpvqyX9bJe1sv6065f3HS1V4tcA1bfy997/K3majNIxMdGmvLlN1Ix1FcTxgkOkbJoaLsget5e/O9aFXnDOTkuKQ1ptjgrefThWo5LfrJUnYBbjM7o5Vi27ic5ugD730pVOR1r+usB/28H7FHRtV7e9sC6nS4NcaJiuO/ou5nmZqRbz2z7EXs7EaOAtfUzo0MVohecn/YQRsvN2wO1i5QqXzKllM2YK09cqvwSBfIcvaFkiV1JtRxfYxDoSaogXwfO9x3j311x/HEtf2grkhnXROqVp7KJmDQ+ynFTLfI1snAFtCqkpPFbJBrJZE5jzef7NWSFX+A4V/1IX3vsN/I93bw+YOtEU8ugi51HAdtulDaCRoZlVmKU9JW/JDeXsyXdRHG3KRgfWsJkadcz8buR06+W4YUuTE+NAKD9Ai4ymXnRHOdavn+SHCnDErGkl2NgnI1UJ1XBdIG6CpSfW/ACzOHa471wNPQo1xjAuISpBOqiPgt93piMayM5GMY3wGhY3QyktKQA60LTe8KpYj4tCcZKIou4nWmqQN/L0Vi9neS43AVyXWRokpHqfAHw2EFBnen/+lHwiT93mJMVlOYbz2Fs+Py4ZpzEwViKYvNfJaU2buQkN40VfhQHW9gIMCcmcXPGVmRcNAKlibMMBvP/sRWUalYUm/G7pcJdz+SoCT/0kjRdFKepEiDU2cIqkr3BuYR2me6bI23jKUcnLaFnieAuyFFdFbr1RFiJxtu4RN1IgIFzEi81/txTuciqn6hdpK293E9FMd8m+j/Ifa024dIuMGctIKU6oZRUxrRL+rEr5MeapveXyt5cL3FesxYd88lJKnjhgvekiE66eC0sliLuOddETB3RUTLSnmWgelJUD+Zr+rmWCvf0qyWapxL4jdvL9w6LnOwoUsuCZEv+izfdl/WyXtbLell/2vWLm66K4pMXJoH8/+zguh2wgxJRchIKFFUmzBa9kHzM0pep68DwvkBQdI1H68zsLfpsMF8qTBtRRt7IelbowdD2M1UTMSZTNyJ1enzsyVlhdSZnfUkBrduAqROVS9LbvUn4YC+DsPunlfSYkqJ5d6a5HhnGGj9ZjM7CTKgj1spAJfaFHDQxGsqnBvNhIHYyoDkNNTFpVNBLPItUu66KdJuJpvc01yPVbpK3tSmEbUIniLMRJ97SEybD5tWZ9q+e2H7co11CLaDxdTfR1gIRtybTVIGu9V/dPoOhnByVE3NFWchr82xZdxOb7Uj/gwwD8mgZveM8V8Q/9uh14PHvb8hJMU5OwgEny3Su2J9bCVVspa/mg5VedpA4lKqO0MgQan09ULtIfTWhbSYXObWYUcNo0UZMAOPHyHybYdLYKtH0XgwwFTJMfDWy253ZXQuSsu9nurVUldWD3GPZG47/dEX1zQndB6FPTYYUNFUbiFtxWqWmEB8a7D+0EtvzakbpjNYLw2LpN6p1ICXN1WpYAi8143Jaur49SS/ZG8o6ks+Ocao47luMTRibCJMljA53UBfWB7PBnypSmwnrglt5nj6tqdoAm0C5mUXWmBTX3cB6NeFcIiZDX3v2fy2MA3MWCaOxidvrIyBJveVmxppM2/sLcQxk/pCXXrz/rZDM+l6ikj7+ryKRCt7Kc/JuFLlT0tL3jxq39tgf60sMUg7ixjs8dbCSQM/iuJg+4rkifWqZJzkRhE0i3jekrDE642dLagvmemacKnLWzMFyHmq0Khgt9LbYInJObwijJf3UXk5TtYuMx4bhJKwQlRT2pwq9mxmPtTxLWVyUbefFhBUVdjfRXo8iV/zUSJ8+A7ZQf7IyRFYFdSeyuuQNucmYURNug/TTA8LROMnz8+yS639AKugse2HsRR4m6FJInQzZqiMX2uq/aNN9WS/rZb2sl/WnXb9c6ZavpojpVZGYmQL//OWGsCrYE1QrT9fNlKXqzEVJb8gUtM6c7zvcUUFRHA4t3oudNleZ8m6iLH2REMUIYE+KECzz4PDeLoJ+qX4PDz1zNDR1IPbyHxagaT3HU4MfKnRQaJ2XftLM7mpJkesS0089OWmaOrDejKSsiVlTClJVDtK/UgfH7fZEuZ3xx+oSIb/qpNogCVOADOpLzXSqmMaK8dAQJosfKsJkqf6vDh30AjXP2DZconf0k8OYTIiGcRYDe7uaUZPh/suGYaoYxorTWLO/W/H00NN8ErJVaTJ67ZmDgNbJCvd9g1JwOLXsHzvmawkztKsgNmOTufrNA9Ylml8fMDYTn2rpRWVRN/hzhcqK7gcDnxvmYEVmYwr1E0z7Bu0EiK5UISYtpxqbqV0kPVbUj0gEu8uchxrltZhIushmNTL+uEIV4ekSFf5U8fB5zfHcyCmgCP+3qkTwXu0VmMLNbwTDlaMwhdudVNh1JYyC7kdNfSc94vldlHuyKHisaOpA23usTRL7MhsKcJpqEfVbkTxZkxlnJ0GNTqp9KlHGXF2fL2D3ErQoXsJiAw7CqNB7K/S5kyIMjpt3B7QSA0v2Qp0jaH64v2KYKioXWXcTP3/eXiJ7VBaTSlOLzRslihaAaXY4Kz3O3CV0E4nHim4zYrZ+4WfIc6e84st/tNRNoG48fTvj9zWMluQ1Y3DC4s2a6ojYtnXBtYGr1fBVKYH8WfX90ts1hbKV6/sMPqdN5KSEZpcUqU+k2UovfenjhoOcEisnfAa/E5qfroW2l7dRLNq6cD7XVL2nagPmwZLdAkGP8iyVrDBaQgIAzO0kp2RTmM4V1XpGvZmoOukXV5sZ/z5cWL9pEzFVwtZRlB1dxpzMAjyXOYKelziipY97+nbBIAQWQplUu2YS6Zg7yV7pN7D5ffmXb7qxLZw/yiCtec60B769fcDMiul1ISfF8alDN4mUtEg4shLAdBKQSdiI+6OqI8ZmGYzNGn5u5GZMGmMyxSLazKhpekELVlWkqgMhWPTjctQ7NZRFljJ/6ehrT1WJBtIMmuHQoBfHW8qLrtNm9G7mdnvi+NAxeUdMmtNYE5MR0PcCrijbwOAdq/V08d0rU8hF0TiB9Mw3WZJrXwlgZLWa6K9GeWBWM+vNiPtfHkUal0Ta9oyrLAbK7cx5qJn2Df7sWK0mnF1SJeqIs4kYDP6upbuSTK1nnaCyMnCKftEsVwX/3nO1GrA2sd0NxHUmNZnkBfAxThXnBfE4HBoUUF1PzNdfgR/r3UBaReZdgdcTFBnClb0jrKFay+DCPzZ0VcB7S9d6GeCdGjlSLoyG8FQLtGhSpE4GW0/7nqtfP0GB80fo3p/E2dZG1v0kUPYigyVrMjouLIekuHtYU7mI2jvGd5npriXOlmlxd5npGUAvcsJpFpeTfTuSkub80OG9pX5SqKip7KIFfZLkkmY1y0tGFZo7eZmUolAm018PnIdaANhItlv1ahQZZQT7ZCjbSPurI2kljjSyYpydyLOuBkGJugwu893re15vj7QuMkwVde9l0x2FvxCDwZos18IK66AcHc7JAClsZJModzXVdmlbgDwvdSBEg5614AaXjfpwammvR9SilX/8px3544TSmeGjaMjHc0U4VZymGh+NwJZmS/XFkhopRkwdqTovx3srsHEmkVLGQVyg5izAdIBNPaFVod5NrBu5f/RgROP+8YxehlooSH0W6JJLWJPQSnTcaZVx1yIhe852q1ykFCnW0iT41xSFK6G1QOgVAk1KwUhCeJXkn7VRXgKTxdw7yY6rRA9sJ2mRhbXwHnZ/V3AHWP9+eW4VF5C5mZZghw3MWxmQhzWcPv5yf+GlvfCyXtbLeln/E9cvx/VMQuDRQXZzOyraOwjZLN5uRZwsr1/vafuZ6A1dO5OiyFZu1mfevXmSBrlCKsUqYE2WNOCPA/Vmpt+KpClXS56RFnlYjppdP3C9Gnh3vaf97sC2H3l1dRKzhStsP+w5TRVd4yFKVWuqTOsCr/oTTsuAIo8CD09Zs74e8KNjvmulopwNOWt2paL/AAAgAElEQVTCJsvRwmZiMjRucXitI85JZTT4SkTZCnEYAd16pqsCpSBDr8bTuCh/rxZ4+2Y7cLM5c7M7ybXwhje7A6/fPXF9e8IHy+nUEq8jVRUZTjVpsGw/7GUolBVxLRFJz8SzpvVsr8+oAiUpQjZsu4lNM4kryxa6zUSIhpvNGaPzJT9t3cogx44KXGbViKTH7kX65up4qYD1lcdfJ8mtU9DcjBid2a5HnE00VeDd7Z6qirSfFN1mYvvuwKoX6puKivy54Xp7YtNM4mxcZ+apIgXNejVJhekClZNqpKsCYZsEUakLH948Ulvx51ePMri9uT3KSejJcPyLRP8j0Eea65G+k/idppaW1+t3TziXGN4naBJzsLzanCgbkUvFqKldpKki03vx9xuX0LbgvaWpA3UdCLOFncePjthJ2yW9Chf5kLkSk0+1mekaT+0ik7cS5VTEibhynjfdiVfdib+4vePd9kCxAmefPoj0alXPtJVUpWqBive1x+l0yf9a/3oPwMf391xtBl69OhCWZOy8C0yvpbURk9xrXSPuzVevDvzqr38iT5ZwqihOHJir9US3G1Cq8GpzYrMZqeqIfxcI24x7N8h9Vy+fKyq2/yAxRVUVuX2353o9CEqxTVz1I1N0vN4eeb09olRh18owr5hC13ji4GjrwPXtUZ6L2RK9DBdjNFKB1okwWuo60O3Evel0pu9m2lqMQjoqtusRvfFMxxprEs5Klh+IBDAvMtI8WfrbM/XKk27ChcGQXSZ2Es2Vlvblw79RzNfgVxAbaB6WlPSzVLkqilzMeIirhf/xy92Fl0r3Zb2sl/Wy/meuX4xQqw5LPMUodjfthcbjo8WO0lDm15Evd2vqLmBcYvYOYxNNm/jpj9dcvT6SbYFWKspTbJZKVXq/OVnqfsInc9FaaF142ndom7k/9tRVxGhpyluTeTx1wnXNitmLdComLRbEk0EDYxDheSoae1Jkp8nGyp+DiOjLNtNVnvFckbJQw4oWadT50BBac4nUiVGTrMaaRNlGqWyWOJvzwTGsJdrHrgJptlS9l39XF1TUDGMtg65DK31em/nhd6949fERozL1UtWUTw35SoYp6+sTpSjOg0jggstkt0iZsmIcKnmr2oIKmsokPn3ZUHdLyN/ZMHxaYa5mPt1t5NouPbS7hzXdaia2BXPveFq13GzOxKuIPguNrK4jT6cW9XMDTWY41mgrVtPjVIvQfemDPk49q/XE6W1BTRXnk6Pazl9ZpuvI/eNK+rZtgmmxiPeepy8rTJOEDvUcbMgy1Ixg6sTn/VpOJNeBmB3KZfbHVrgUHz317ytJbj045tEwlw699vgsrInhKJ8XBaaJaFU4TI0wc9+MOCfVL8hwpWpFVqZNFjazKsRo2V2diUnTVYFP968Z3hfazcT4paOpAqf7Dt0U0o8d5jcjX+5X7K7PDIhVlm3iaW44e5FQhaxp7HO4ZsYcLMlmUtZ8Oawkqmc0VLuZyiaOU42eNSUVzkMtJ6BkaKycut7sjuSimEdHrhyNi/S1x0dLZRJVG5iCY1XPmC4Qzw67Csyjo2ukPx+T5jTXNDbidGL6uaP+oplupGc7jBXb9chQFZ7+vXAcnE0YVUhZBqTr7YhWhaex4f124mlsCdngg7CXi4GcFTdvDjJE/+9CLF0TmaOla2f2rsXcOdZ//UhlEl/u1sIwQXr/SslALdnC/tiyWk2MU3X5Pdr/VjH+dma9nTk+dfggVmGjCyHopUkr4bHVo2a+Tcv0UC2fU3ziYS3V7PhK9sXQL7DzHjHxOFj9QYwRsf3lTfeX2Qs78eE/A6LdSRrIu3ZgfJsIK2ibwHY3yMb3JFT3uoo0VaDeygQUI5rW1Xri1dWJkLXkSo2WtK9IWbNpJtgE7EnUBU3raVoZYvlgGGeH09Jc7xpPaURXOx1rDg89IRquN2eKhrrx5Ky4P/achhp/nSlVQblEtRw72iZwtRGt6Wo9kZeBmz2L+uHdm6fLQEPXUX7PTjS+jIugUIufv3otA7Rq44XXkAXqI3eGoriMUoXZW15fHymmsL0+s35z4sunLQ+Hnpw107nCfXPiejWwamecljbJ+5s9lVuO+wrMgyPOVnSvnYesZLBTFNvdwFU/yuR1J5tvvRwH86IVft5EnE00dzKo6JZrrQeZ4jqXxMVmE/n1jNsLbCQ9VXTdTG3lYV53E9tuYrc7y7BpmSjv3h14d70XoMxWxI7vXu2xS1S7PWvcyqMUfPftZ97dPnH7bs+3H+757uMXPr6/B7OgA5Piqh9592ovaSKrLD/HJV4vWtb5NjFfZ9bfHDBbz9XHPf1qRv9c8/rmyHY3cH1zAitwnlwUm2ai+XgiDo7xVPP+ak9XSeyD1uKYC5PFLioTpQtPhw4fLD/9fEX1qDCDYjw06FXgvLxYzSSg9/3QXFQA5tFe2CSdDXyzeeLd6sDb/khl4pJgIJwDBtGQr9pZnFFBXzLVSpGNILeJVT+Rg+Y41dwfe45TzZf9isMoA+r2R8U0VhzHmi93a8YgR3djMmdfY4y0fpI35FmeMQBrsmzKWnTipSqMH2TDNsux3qgFKr5wHbQuOJPwyQhYXBUaG9i0MkhrKxnwWZMFsL9Amp4OHSADMXvUtFcjtYuiETfSGky3gWGscCahHirqOpAWpkNlEkoLF6Jp5N8zZlEpZM381yP9ZmKcHK4N4lZcvk+9PNvaJep7LRlpXkMSV2HRwp6xZ+ErPA86p2tRMcRWhmmpkcCHsuyRzxyHf9Gm+7Je1st6WS/rT7t+sb3Q3MvubcdlV/ciiziHCh3lKD570eN1jRfU3LKe35paFYnMmDXjVEkFUZDEz6zodiMhGEYvaamA8AZmR9N6hkUberM7oZQ0xGsbwWsBideJ9Xq8/Lnrf9Kcrmo22wF/rPjw4YE/flmO9MD9vufdzZ5RiWSsWEVMGmcTU51JjSLNDrMaMDZzuu9QVo4qtYl8uH7in6dbODhKnbErLwOqOlx+Tu0ih8dePm8GNRrmUrN5deY41VAUx2PL6+sjb399IGbNfmopQTPftcRWBktKFVKWOJ/WRfaarxUsCyuhaMIoFdmxNDiX2D92lEaGXroPGF24vj5xHCShedXMVC6SkhaUpZajarOJcOVRZydVQjQYXSj7itQV8Aa1DhyfWoaqvpDRGA31q4E0WXTQJK8ZporDvsU+WHJdyNeBH76/wfaRtEm4xyWjDvjdH17T/mNF+g8nHp8kYKpkRf3J4HdS1aaieNqvRIs6aLyrcNcD+6HB/lxJZt8I8xtJJ376shIOxjrz84+75XNqzKhJrz05KX7/+1dUayFc8Vjxu/Et1fWEfqzYvD7w+fM1pcpslu9jDpbV1czn45pXrw7c7W9ovmhKVORsMb0HL1pSXk38+uaBMTpOc026DTSrmRAMf/vHtzStZxorlIJ3t0+oOtH8oWZ6k1i/P+KjpbYRfTLkqyhpxWuFW6RuejBM3lF1ga7yUrWbiNVyTf/P0wfOf5a42siz8XZ74Of9hjRahqri5uaRw9Cg13Ivud5TV5HWBZxOGJ2Zk0UDqk64u5p8o4lJc9WPdM7zeUlKXvXT5fmrbUJP4kJLWfPTpyuufvUTmsLr9ZFPhzX0CW8KJhqaRp6bbTfx0+uWdtH29rU8V+bNSBzdhaWy+fMnhrHCW4MPdpGqOXDSQlpvR87n5rL35H3FuLAd/HkJdKvALUPTAYhRM/9mwv6hIS2Dt9QUyeaLENaF1Eobwh2hvYPzO3GftXdw/LV0BbITVkO1/+VN96XSfVkv62W9rP+J6xcr3fPH5xx44QUMb6QB/qo9870r6An8qZIQuvenr+zQrFAK5kPNqp3hbKBPXK0GznPFpp053tWUq8D5qWW9GwjZoJIivA2opMlfaq7+ak/tIg93K3wytC7io6WvZnHQnC1162ldoHOex7ETWLQ3rJsZ81r6SvRp4WcqrjYDg6+keY/I2Ha9VANH25M2CR5r7tyKm82ZYxU53Xesmhm7vP05ScSMbmUgo3W5VKaw8EpvThz2rTiyXs3CQNWZFAWubBfm74/7LUZnkUPpQn07UVmpNEIyVDZSm8isCsVmmjtD/naWISRSpadeemhd6+krz64f+OEPt6ijxb0X6VEqCn+o0U3krCvGc03VBsIuQZ1Y9xMha0rStD8YBlezejtjTURtPeWxEifW0XH93SPbZmQMFY/nFrWC19sjPyVNenD02wlrEturid+PAnZXJvPdxztKUfzu/JrwIeEWePyH9w+YjzI8WlUz51Cxrmb+wb6Gzw3WSi/+/W7P5+OK8VEqxG0nFdbnbx3pS03qQSWNtpn3r58uw6DKSkBpKYqf/vY1+qEiace/+Q/f87e/e0+JiubDmXfbA3OyfAqGKViqVyPzY8MULQ/3K25vjnz/+QZtMsOpRntF6IWAhRLqW/v6zDysMTbz6bSmFMRxOBhm7YQp0Yj5pdqMFzOINpn5NqO2geMPa8LbgT+/veOnm4D57OCbINennnnQoLaeFDXhWPEQDY/Hjt16oLKJyggJTB/10kdNPI5yD4++Z35q+MfHd8JonizKJaK3eJ05njY0TeD8qeftrx6k2nT5wvcoBZ7OLbGRuYz97NjrFevrgcPYoLXI28JkOTQN292Z+6Hn6dTyanuirQODajAng32bOZ9q8lOF+Vhofldxdgm9WfaR4IgPDSoqdBc4+4rzUNM2nnqp+AGazczk28uz13UzShUZtEUxU1iT8IOhuEzKhuFpRXo9kKKWSrko/KtA9dmRa2lXm4ORsIKoqB4l7ddOMiy7+S+Fx79UHL+VhODUSN+36P9xMOUvqxf20uze/FPh/t/J0bZ+UBy8EO0BTJOg/dpWsMuRsXGB5k3gNNa0PxnG38hEMmdp/Oe6UHVBGvA2MUwVRReqHx3xzyKb757w0XA4NZIU7B2zd0x3Ld3rM0UX+h/g9K0cGQbvOJ1acpWp1jNjcDz84Yr9thNguVY0u4mnfc+r3ZHaxuUILZegMknSDnRBvx3pGs/gHdYkccUUzckLJL16NeIfG0pSzIPj9kaGOTEZKpNAS+ZY23vO+4ryuSZ1mf3ZobooUJNrRchabNEms24EIj1/7jjYhF6OiSE2VC7R2IjyWjKcjrW0PBpNX3vOXnB14+y4akbZ/CcNV57w/Yr4W3EQrW/OMhBSsNudmbzFPRpCUsSd5vDUoV1i+C5Qb+bl5Sn3QH2vGVuD3noeH3r2tiOeraS36sLPZUPfzextyzxbghbtszla0iaCN9yfe46HVkDa9470JpFny9jOxGUYIy9tzeMomV/VUTMNFbt+5OzlZaEKlKAuNu60pAS4R8O8ctTbmU+PG+LPLYcbwRp2m0li1bOiuVP4fz/w+SztCuUylU18//laEgnC18+iR3Etfnj7yBwsb2/23B17bCVdBOMhAvqh4hAWVKQthNHSbiVvzejC48pSgkEvz4oPlnlyrNcjjQ2UIkm9MSvUNjA+tHRvA+aLI15H1GTxK0GDmln08SWLu85Vkc3yAlKqMEWHrRPMinm22C4xzo7sFPZG0JRhssyjw3RBBtq5EIwoUWoXufrujs9Pa5yLlAylgnSsqDYCWDe6UP++Yv4YBISuCqdjw7tXew6TxlzJsOr1+sjj2F0GgX3leXKZYuB0bAQk3iem2RE+RKpabMP3d2ua3qOCwh00YWdot4FBVTIEXoZ2KWmmU43dG+o3EpJ3fGpZX8lzUKrCdjvI9d3NpPsaezuRawFiaSMoU/tpcbV1orTKGFQs+HXGHgT1WJS0WfsfYf9nX1OxVWbJ1BM/w78qOeJlvayX9bJe1p92/TLEPIgLI3YK4xXXfwP1Hr6cBZfojhK5Utfiw0+T5XyqOT503D+uGGeHHxzT63xB0U37RgZpa5F15fL1LzOKK0zpIu2JaHl7fWDVzPSNlyP06zNtHVBV5vidRJo0VVhgJFmg48tb9d13d6SjgKB1k/Cjo+8nHk4dp6nm8dgRouE01JznCj0LMCXO9nIcPZ0kz82ozJf9Ch8N/qERz/lsKFGTUeyHlvNTy2mqOY81T0/ys0uVBR/XBbbvDrT9DArikxx9lRZY+qaeZDDVJdKiP37WGzY2cp4rMIXswHVB8JcmUZtIsWCtoDV/fNzyMHTQS8VgP56Zg2X/2HM+1TR14LxvOJwamioSNhKZM04V7UqqQrVI4o6HltlLhTa9Teg2XiKL3t0+oZvE2zd7rm9OGC3SoVILOGXdT5yODfkqLP58jTWZ3e4s1XGBtvfoJnIaa0I0PN33jMHxdG5F77mKkvP2ueFpWI6PVoBD9mrmONZM3qJMxp7MJSYm/NTR1IFXv7lnvRkxdWJ47IiTo35QDN8IPGXyjmrtKUFz+v2GpvW0tUftHbO3+FNF0XJ62w8tg6/4clhRWQHA61mwpyUo8rVn9+YolZOSeKa7/YrTVF+OutVaXJspa4bHluwFdnScG4o35LoIC8IIqOiH01bA2oOR32GsMLqQmowepTVjtp6u8dzv+wvsv3Oepgr460TfyX2y7SbOQ02cHNergfVmpG4D8eQgaFwrrjKAw6nh89OanDTz7EiL1K364ggLErV1nvlG9NY5Kk7HRrCTqlA2ka4VlsVxFnCSVoXHc8uXw4p4chRdWK0nYVtcjWxWI/pk8AsY57J2nrjOtP3MHJ/ljnIammYnjAiXSE1hni3HYytJ3M+rSRgtcCZjMtWiyTZWTqMlK6AIQKsIStTcO1b/aEhNxh4NOsmgzHhpIxy/laGZWbwKYckgiK1IyvTXzsf/9033Zb2sl/WyXtafdv0PN932C0w7SFXh+K3i/AHB0j1pwqbQdzNKQTxWVL1HmYKuEv1qpqki252ktJlGojLWN2cBKGd1qUgrk1h3k9DAkiLtK4apoq89p7kmZMPkLVf9yPBZJEUUcYTMP/VoZIj16uoksUA6oxG5VXMzopKinEVK1LhIiprzSfqz53ONf2w4PrXiv26kkgpR/N+uiqQ+EbJh3U/szy1uN5M78fDjNT5YmirI76+ERla3gab6mlCMWohIWZOajOojp7kiLT25n44bSTrNsOtH1q1Qt87nhlwU225Er4Ng7rxhnsVVVNtIvg6EYNhdnfnLN5/5i+t7UIWygLWNzvQbCUIM0Uh1uhkEo3jS0CV264F5cpQoIYjzoabphMfQ7QbIUmUqW6h7z/2xpxwdg3ccz42YSPSCvaykel2tJxjMhZMhRDcJUkxN5vzziqqO3KzPbLuJj+8fuOnOrNuJjKQEa6/IN55NO3EcG4yVk0P5vqOuZCCltJgKVBS4t3vSnL7fCLg9iSGkWs8wacY3GToJLZRIJhnguvdynx72HebNyPVqQLuEuRX626qZRf4I4r4yeQFYF9z6q4kneUPRhXAUkX5fe/ZHqdKf+5ofdk9sX524eX3g/dWeKci9qaLcJ66KXG9P/PbqC6VPkiys5STTWIFtl6pcXKBGCQfjpx93PA0tPzxeyUDpByH9GV1IRUkwZBM4TTVdJY470wlqMdw31C6yWw+s+pl1P+EqqX5NI9jFXElMz+QdY6iwtxOlypSoWa2FIuajlT50MrzanCSeqwrCUslapKXPEU0LycxZAebnTuKHlBLMac6KcnCkXqrV8wJF98HQ2MDt5sSrzYm6EbB92wSMTdgqsmpkDsRkePzHHX3tLxFXuSgx/QQtZLKihFpoC2mV5N78NlM9yolPJRmQPVPl3EkGbbET1oIdZT9KzfKsv5gjXtbLelkv6/8/6xc3XXeU3Tu10H4WuZhKy5t+hOpJcTo3nB86kXtNljQb0mgZ/+6KOVie/rCVGJyz43yqGSfH56c1+uca/yAs2c+ftzw+9gKT1tITczbx0487hkkqtVIU+6GBViaxxRtiV7CvRu4e1uwfex5PYik830tP+fPnDf77FfpkRDVQZR6PHV3rWa0ntMkYm7HbmXrlhTvgNZwtpy89j+eW4C3mbDj845V47luPP1YQFGU26El6S8820WmsiLMhRgkSVJNBj0JdC8GiAD1r8mg5HlqsE1vyrh2kv1QUf/zxmoe/uV3YFIrD0PDzw4ZyX9P9KBE8APup5b/9/AoGQ/2fO+7v1vz959f81/tbtJHI+WrlOTz2MuWdHcOp5tOXzWJ8yORGrvfdw4q28+g6YY4aZTPDob2YPDCISuBoqWxifGqhS5yHWibhXn4fM2oOd71we8dKuBBZib//qcYHSxgt9mQgwTw67g+9qE/mmu8fdjydOu7/cCVKkqCwP9b8+P0NOSv84LAHQ3rjefq85vC7K3LS2FGmycor4p+PFC09vmmssG0gZ4XbzZhJRO45S2ClNsJNnR8bNu0sfc7HRqy0J0faVzzd9zydW87nmrb2nCdRzOggbJIcNRwlXLXqPGbS0scGfv79tUzOq8R8Fqnb/bnn9LstmkIsYqjRo8TccyWhqv83e2/WY0m23ff9Yu8dc5wx56y5qps93YHklSVRtC2ZtGEL1osFGPC306v9YgiGAEOAB1q0TYokSF/ey77d1WONWTmdPFPMe+/wwzqVV09tiLwQ/JALaHQ30J1ZJ07EjrXWf9Jq4P/41W+hr4VRYxvphi82hex5W5Gr207TOc22jonHLUoN7I9K2k7uEevUrU+G0Q7Xa5GzdyF5ttvht4ph58zX7Rg4RnlOpiuypMNbLfL4BxVtK5E3N2WKXUnMj8nEKH8UNyRhzxBJZNd7ymPTiexaa8+mTNCTTpzi3h9CO8FO/q04uzW1uAZq7RkSj1kZ6iakeyNTrlbC0Lje5DLJeMWghP4JUKTt7ecNip7i0Zrea7xTWKtuA11BxB0EA0GrwIl/ceDEK7ifePmODYTl7uzb0cMCB9m5fP+Bk8532H2kcPt3OHTbmeQBMUB1Ijw91csNW594abd3I9ewS7HVF3JDZp/ckEUdB48WYAYxcdaSFup9QPCwglBsFHXkmE4rhknPEECQWrrOoFMZPbd1LDxZ7UnyjuptQRB6VC+g19H+mqHb3byVRmeW6bRiuldSPFsSeCQpdCPmJ53VrM9G2F4OyvcgVHwe3n72bK8SapbyuNxhTiti42g7g8nESyCwAUEnL5v6LKerQ3yr8a2h20Q0leQ6+Ug4wlp7BiQJWNUKHXpm75N6d5p2tLx4hhOh9kRpz6yoyNKOwL/3wwgwoeP67YQs7dClonrgSIuWe7MlB8UWVxsG42lXMflEeMhKDcxmJeOpjNJysw6oZUicik4+uIwZooEwtYRpT5R1NM0OjDSimS+3MdhAAIxVhNpZA3qrJXVhlxhrQkfQKgILrtHoVIx6ArXT7eeiSnyfyKGVqL+mRcXkdE3QKlzm6fd7xofbXSKJOP1jFQfHS7KHG4Ze0Y/EFpTMiSfFcYU7TyV9udcCcIHwsGtpDpqdalJvDIENqLrw9l7O4w496SB1jKY1XScUrbYLiYxjW8bUJ06Sjq3w0K3TkmrsYChkBRHNG/YmJWHo5LoHA4+mN/z0Z99ymG8ZRa18DxOLTeUFOAxgtOPJgwvs1GESy9ArRtOaehvvjL3lcAKYpTXH0zXzQhKOzy4ndJ0Rc3Llb+0ltRoYrKKzhv28ZHlVQGUgdzvwemCUtEJLU57ei5FOoL34WuQNvJFVSRr3YAZJy9XD7UEN4M1A941wlGMtHh3eB+wVkoOntL89JJNEDuws7KiPB1ynmYwr8qhjXsh9OuhdjuFxjd4Z2QDEkd1ZNsqLtK4iiqxlmoj16Cyvb5877wOmRUW4a3KytGMyq0jyjijvGVLHEHv0yggnWYHZKvK3QhFrZ/JZfSTgmeqEZOBDOR/Ti91pGuzOzL/toXtXd3VXd3VXv9n6YcqYheRCTvb4RugULoK+1+QvFfEN2MaADci/DbG9xh12pLNG/BF2NQSSI5UkYvB9ONtgV7GkeeYdo1EtlI4LyTgbnCLPWuksrGGSNRgtqq2+1yTHFYH24oaVWM6vxsyON/IGFAaIkMF9QNOFYjKdOsKpxIUcjLdMTtcUeUMSicl1kna0hxYfeRj17I1K8mlNmvSkr4Sq0lpNkUjCLIUYarsjcflS047o2wSdWtglp5rY4TfymUxi6TvDOG2I3kSEJ9Ut6OaHgFeLGV0vI+nx4Yqj/TXHUwFapknNXl7iMk83dxIXtI2IJqI2G4x0Z32vqfuI6yrfqaTAFL1YVzrFgIybwxCQhqKm86nHzzv8EFBEAhB6I+bXedZKtxZZ0tdi6+fjgSTriOYNUWyJ5g0mlI5KhQ52mWrOKnHJsgEu9dDvxDTaMziFS3dZYwMsrgsW3824fjHj8vs5l++mrF5NGKJBKICVpm5CypsUbzWqDwjfhSxWBeVa6HvRUtJbaWWV09YhPnMURUOSdbLSMA5Vaog8JrG3AhSfOcy8ufW5CFpF2UYMZykmtmzORsS7XL0k7umspshbSN4jJgNqIV4egRZAT18bMUWPxZmrWcc760gp69UtMLeXifO1GzuGTqONZxI1otJsFbYWK8tZXolTmRIambdK7ltnUAzEWgCkk4OVWB5WSlzPAk8SWcaxULTWVULrDPGoJdqrGXq5bm1vqPtQErK1xQT+VmlpSiVp2GNHGvcs345BDZiVvnUjs15xvc0l5+3pls5pLssCrUT8owNPEXeSIzh3ZElH+UbsPlsnIpowFf+I3mnKLsJkFtVJ570/2d66DE6SmlC52z/vYAZGoxqjPNdVzraNaKwBp9hsJV6qtYY4Egez94rU3dcHQHgVorqAcK0lcmrq2DwSAC2+CW4FEgyycvUxqFa6X5vIP5tKtgF/60P3ru7qru7qrn6z9cOdbis64kHLPysn2mOlB6rTAZtBOmoJUkv1UUuetyRFJ6GhamCcNKRRT9AF6F1w5X5WSlhdqQlCMRE/KjbMswp/3IqnbSpORyZ0FHFLqB1lGxGHluP5mjxtGcoQ1Sj6q4QwFrNl59QttQyR2KMAACAASURBVGma1yShlWTZ1xEqdHSrWN66UcthsSU2jthYjqdr9kclOush8ehY2M3HYzFYbp51zPKaIu5Iox5tJCl22AVEpuOGvGgZPtlK97xXY/J+R0cBP7EMXjEZVyy3GYGDdpncUojcENxGqaQjcbTqnEYxkBjLVZlT9xFBF0i6cK8wieXxwTWt1WISD4yLhk0TS0TRTo4dRVb2uIXsud7T1i6Xv148BauQIm15u5owKIlh6uqQYdcB1Oc5NpUQUA5aip1QJYklWiZA9sNRbBkC8TUt8pZNmYiGvZbrMBrXIhNX4gcbdAFR1vPZo7f89Kff8fjDd1BYPnr6lh//6IXsVAcYEs/RbMPe0Zp8UmPHjn7m+ODkgpOjJeFJRbsvwaJm1sheVQ1k85qmDTHaM5oIDcwnHp3K95FEFrcJUUWP6zVJ1DPNJU4mCi1+r0PpgfHpGu9/Lbox2rNc5ARbLST5yONnPSoQD97BDLgD8Y8dhoBQy3TSNwa7DbE7xKWyIdYrib8KwKw0KrH0rwrsoKi6CFPuXMuGgFhbTh4sxGN40qNDT7VK5efvahgCrjaSes0gIJVWMlFp5fGNYW9U0llx6GrXsiMO8p5x0shUlZWkYc8kbhhFAkrZibh0BbFIdp88e8fgAuxMJloVDBjlqasIn4l4ZLNJqZqIImoJleN8PZLnOrYELqCsYuLjiqYTR7KgVbSr+PZ5T8Me7wKR53rFthEPYMWACTxuEPqYbTW6ETN3FQysbjKySCwIBrfz3d35PyfGkqdCR3sfjPD+OfSpl3tr4gg6Jb4NaqCdyYTPIEKI5EqutTfS7Y5e7HbbTmhkf6dOt5sJB20IxCG9G4upuW018SKgORAUcKjEP0BrSUDYH5UEwcCbmymhcpDLTdFWIa013NQZw35LsBYkvLWGxgoqOugBb+WGK7J253hvGacNdpf6MI4bgl5QRzXpyNKO3u+yoTJ/+3CAmKLYfMCvI9QOmPvVN/dY1gII9F7TWXOLfEZvQ7TxYsEIjLOGwe6+IOXonaZvd9HkvShaskRMZg4mW7JIVhN7k1LG81lLsJGHzSjP3rikOe3Rec/pdMVeVnKYb1m8mlJvEup1wmEmAEsQDGy6mIeTJXtpyeThCj+26L2WNOlpnWGW1ui9FrNLeX08W3A6Wosuv1X0vaDRikG4isHA8XjNyd4Ko4ThMOy+n08PzpkcbRjGu+y3qKcpI0FyD3rx2BhkNM6TjqqOGKcNzVpeZu/TL+oqEh+IohZwC0keTkPLJNtlXF2FkAmo+s3VPs8vD3i3GjPf2/L89RHn5Qi3CYlWoIqeSFsUYt+nankg2t3B0W0iSH998BwfrtC79IXj2RrnA9bLjLITVV+gPEkq/Nn8UPT6g1MsVzmrKkFNOwFjIkffGPbykmkuqcJF3JJFHfeOb4RtE0gKCYGAS2FisRPHYAPGacM4bThbTCS/z2qSWUOkHEUoSrHahsziWnL59i3eKsz9EusVn+ydMzyqiMatRJIrJwZOkUddRexNtwy9QgfSSMySmpNizceHF5jQMRjYrFIiY5mlFa8WM8kLHAIOsq3kiw3swDsZ8TdtQtlHrNuE83J0m7SiajEtMrElS+R5i88EeOx3a7HOaYZreW6cU8ymJfdmS0kDNpbDkSgXvRO2xPvDbl5U8kyPe4LQi8F82lB1IcMyglzSgZs2RCvPNK0pwu7WSD/JO7yBahtzeTPig/sXZGHH/ZlYZkaRZVUnhFrUnomxdK2sg5xX+J3xUrBbCwajnuhm92ccwMUDPhJObvYOmgNZObz3W6j3A9SOy2tT6CZ/h0P3ru7qru7qrn6z9YOHbuAQdYUCW4jXAsiY2BwJh60rI/RYOhwVDGy3KZ3Vov+OdyOXDbCloRg3NDZkU0ueGPOOxpqdWXeAX0WSN7SJxHVLeaou5NXVjLY39F7RO82L8z2ihcRqRIllLyvJo45R3hB0Ad0iYRgClmVKYnoZvzOhJ22amA+fnLEq052tnnymUDlcFdKe9HTrWCg1TYr1iqBRlF2ER0bFomhwy1jWC+cx87QiVI5QObKwI9KWLOxkZWIVPvEc3rthlgoFxqyMcDuBxkpu2/1nFwTKc3C4wvpffy2TqOG6zui8pqpj9MLgeoVSnqN0y15aYbchrjXUbci7csTbzRgdevRcRkPnJel2uc3I446rUviNWdhB5NELw7aO+fnZKWWZSGcfSlc139sSzxr0xpAUnSQ0pxUH+ZYHezcY7bl3b8HRaEO9468OLuB0Kk7OQyjOdGkimXECJg30+z0Esv748fEZHx9e8Gz/igfjJQ+OF7hddlV1b7cm0e62g/e5Iz4tycOOvbQkGbfi5+CkY1vXMY8Prnkwv+GmzNgflXz44JxpUr+P4aPaxDw+vGZ7meMaQzauuXdwwyRr8Dcxy+bXKjIVDJxfjolCy6sX+7hB8sukSxzoylDWSEOA6zV6o1Gx4+3F9DaBWcVWulXjeL2Z8BevHvJ6OcUEnotq97MaxdArujLk6++O+WJxiFtFdGVE3xoqG0pkTalxEyvG/4PwtRdNxkVVcNOkXDcZaqfSM7FMLUXYyeokkI60cQIm5XsVKu8ZOrnn8kgAr3Hc8O7lnLPVmGEroORQGwavbjtEmw/otSGKLL3TrJuE6LQkUMPtKP/ifI9IOfwQkIei3PObELPSdFeppIMHog70jWE6L0W5GknCdvG9gkazXmZyHRmobci6jxnHknyt1E5JuoiYjCuMkm450g5KcTas238nFgzxjOl2nhBBIBOLP2qFxlgZ2iOhheomwNSSiN4cyvoALxqGIZAVQzeV7LTACpBmfp2p8O9/6N7VXd3VXd3Vb7Z+8NB1yUA7353o4UB94tA9FHGHrgPiayHIayO+qEEw8OBgQRDIW7+qI6HFBKBiRxTKbul0uiLQA77VHOcbyi4WgGreQjBw/Piag2xLHrVMs5o4thzmW5xXbOoYbTztow4/E8+BIux482aODsRAeXK6FtCokV0xkUfdhIwmNcejDYfpls9O3pFGPfOsYpLUzJOaeNYQmIF0WjONGz6YXgOgK0naDZW4er3fGQ+xZzhuMDt3J61kj2iUJ9QC0g1OEc8a4tBiveKkWOMS8UKItLulDU2iRoQbTj7PUbZlP6lQwUAedoyjFu8U7qCTpOCkxRMQKUs8bcjGNafTFf/R4Ut+tH9GlrW4tej/P9s7416+5u8/fMHpaM1PDs74aHYhVKC8w80tnx6d8/sPv5X026LHLmNO8zX7WUlXRriRpTnLGc8qbuqM8+2IshPQo+5DXlzPOZ2t8JkjG7Ws24Q8aglGPdUHPXUbsdhmxKElyntUrYlfiL/Gt6s5N02KUR6jhC41TWqCzDIkjjjpmccVibaMpjU6sTTrmCLsUMEgoFcroFaRNxRJx9vVhMttwSSrefl2jxdXc+yg0BvZ/c/3tlxuC2YnawIb4L1iWaWSND3tGMcNtgzxvaIIOz59eMY8rfj0wzeM44ZHewvUrBPaYmqJxwIW6dBhp5ZAD3z84B0KcRgzsewl6ybkMN+yNy55OL3BE8g01u0CHdWAjjyHJ0u5/yIPtaYYyZQYKUe4VgRODOz37i/Z1jFlFxFpyyhq2UsqCWc0A+OiIQ87Khtyb7RCVZrDfLtTgXWUVzl+E5HOBDSLtKNzhrPNmB9//JKj8QazVqhao8cd3gaMkpbDbEtw3KBOKyZZw0G2ZZw0nEzWBMazrmOO8w2/8+g1ibYUYcd+UjKOWrLDElt4wrl4gcySWmibZ9J9p2FHZnqO8w3dP9wSX2gms4pR0jLPKvJQprXWGtZNcutxcvDhNU23w4yGgLKPIJMd9KO9Bf1uP11ELeOiwQ8Sf6TUQJjt0K+NkWueiEqwm3n6YqAfexFuWRFE2Fz8xYNBdr2BE1CNYNcN/60P3XRgMMMtYBC4gG4EV5ucQUtbHSWSUpvPKzZlwqaLcbvWvqtDvvz+hMAFKDOgGMhMz6YVZ4h02tB54fmt6gRXheACnA+wg6C6k6jhdLIiMZZpIgfLKG8Is57BB4ShKGE+e/pGeI2dSCgT0/Ojh28FEFlp3EjUK5mRcSYzHZOoYRy1RMphvcJ2mqFTWKsxgccoSSzgQU2sLeOoZRo1rNcpZtagE4vvhWXwfqR5X+9/5nhW0r2Tb2EctVQ2BA3b64xx2HKarTnONlzXOYMX/qwf5PN7AjLTM44aYTKkHUMn8ejdbi3hB0XfGtpGxqfrtuBdPaaqYqILg3OKvzy/D8AXi0MaZ/jy5pCrJicxFluFBJFj20es+xTvA9x1TLJfYwJP2UdEWUfQKsxBTdcbPppfMEsrZmnFvXzFo8kNT/avxaRmCPA+4NP5+S6pdUAtBTF/MFsComIMbID/pKS1hofjJZO4YdtHLJqUxhl5kRkZX/nLMa+2U9a9yMjn/1vC3tGa86pg0WRUdSQ88ZFjdVUQasfT+TUPJktC5fjZs5d8cnzOSbYRRoISBdVHe5fCjU5E8vrjwzN+evIWpWWlEBg5BCPlWDQZtQ0p+wg7KJZ1yuAC4jND38hfeSQGQYET3veXb47YSysezxbYVpNElvt7SxJtOci2zOOKJ6MF+0lFPqsxS4OKHbY0HBcbtr0Af/G5prPSoHRe093vCDLLNK/preYf3H/Bj/fPOM422EFxXo4k0aRSrDYpdR8yj2v+6tsHhA+2mMDzqLih6Q3T4zVq3BGFlk0Xc5hseTxe8Nn+O8ZRw2FaYg97fCy8bWUGIm3ld2iPXSRcLMZE2rGfVExiMWo6HG0pTEthWpZdwrJNWLQZJtgxBsY9+5PtbejB6+WUvhjIoo55UvNyNaVxBtdruicNzilJpggGea6ShkncCLtpZ+m6qhKe7UnDdpCWjMJWeM+B8H4nicTCJ9pyb7RifySm/iIH95iXCeQWtTZyH2eOQQ2YOsCUingh5IJgEO1CtA5wsTAaVA+IOyTR+u9w6N7VXd3VXd3Vb7Z+8NDVpUK3skz2qcOUCt3AyWSN6sSKzvuAOLQMA9hek4aS7hkpx+88fcUnT94C4HqJxlm2CZOkJh63jFKhzxxmW+ZZJTzZAdyg8LtlOkjX+GYzIdSOadxwb7Siv0hhgP3xlsqGeAKaVhJ6t1XMPK7JTC+xLwfyc7PdGPLNeo/OGel6lSfRlsx0FEUjngjac1HnWC9mIm4RM0tqMtNhB6GX9JsIVxsme1sy0+9oQB2zpBbgAFGaNW3IkDpMIG/0cdiKkifvebGe8fniiF9dH6GVdFUXC+lStn2EYiBSFus1ie4pVymqVvhtSLYbwdZ9zNBpwsjyoFgSacthskWHjv6R6P7/4P5XGOX42cFrDpMtH84umccVh4k4c0Rpz/18yUG84XC2AQVNGVFZySoLQ8cQDpzurfBDwM/fnfJ2OeF8O+Kb5T4/f3GPd5uRADta4pf+5MVjyj7C95JmG2vL+XZEZw22M6g2IAwF5Gmcwe7WMkZ5IuXku4ksPvakv3fNSbYhUmLMfvkPHVdvJ5zka+aJWBGWT3pQEISew2zLq/WUz1+d4AbF86sDzrZj/ur1PRgCop0664urQ/reoEJHY0P+5Jsn/NX/+hHDAN9f7BEXHbN5iR0Uh9mWo2zLJGqYxTXjRDq69siBD8TAv4uEPjUEaDXwe0+/wwS7CWhnZfjdi0PGYcNRuiHVPZUV8NE6hYuF57t3smYcNWRGAK7umSgy1128m6YGfC3qMecVyy7d3W+Kcdhyb7QiCXvcyDEqGrTyLLuEnz17ibOKy6rgVTkljzvqNsJ3mvVNRqwtWyu/Y9vHXDU5lQ3RiViOri4Ksqxl1aRMkhrXK4g9B7MNJvBUNpQ1W+S4LsWc5uV2yqLOeHU1o7IhRjm8Fw6xVp62l4mtbQ2+cGzqBLvLgouUw1YGZQZmecV+saXuQ46zDdNY1nrzROKOfCZUtOeXBzKdIuDh3umKPJIcResViba3nOL3VFRAMuKOetCDeHsoUSYOscdmQmWN14jHh5HOti9k3aDsr7tfH9/F9dzVXd3VXf3/qn4wmBI14EIwpewqXTLgo4Cqj+gnjuyVZn+2lugMK3vFUDn285LM9Kjd7nTQA0ne0fWyqyvCjnYdsxoCPphdcVEXZKbH9xJSVzURydhy3cgOaBI3HOUb2bt6Rec1+f0N28uctjfMdl3t8WTNy9c58ZFl3cdkpuco33ARjWAXeX/TpHw6PeeyLVCIUifZ7XlXlwXBtMdaxePRgsrG4pyUyn421x2NCzmer3lzc4CZN7RdSBE26ECMot//3Q+KxoW8YQqD2PnNkhpPQJBZDmcbnk6uiZTFD4qX2ym+10R5x2m65DiRa+4HhYmlIz08XHGpRkymkp58GG84Tla8mM2o1rInf5xe4xDfg0UZ0vSG78s9TOD55eWxRJ04xelEulYaTbfJWR+nmMBztSrABSjjmUQ1r7cTmm/GqGjg3XLMKGv4R0ff4wjovOGmy/hs74xU9/xqecQitbS94T9/9iV+UFytC7odyPqPTr7DDwF/5h+xOFGkO2rRskl3IaGauokkVmksnaRqFU1nZJ9rQ9xVAokjm9d8fnVE+942sNQMAezPN1w3Gf/Zva/wpwGtN8Rzucb9geJf/+pTiYsKBv7gwXN+uTzh+4s9tPL81x//De1vGf7q8h7bJiYKLXUr3dtNk7LpYiIttMBNm4h3hB6IC/ETeDhZ8ss6IegC2t6w7eX++eLPH+NzT1A0pFPprFLV03rD1kYieoh62rE4blmn+OXlMb938j1Br1CFWFMKsOr5pjkhSEWBOQyQmR7rNSrwNE5Ubps6wYyEttU6w1G25e12TJYKza7so9soIR2722sC0Hk5FqZRgx0Uw1kqnhKxo3o+ofj4hnebkViRtop1HbOME4wSUZFrDS7uWfcJH46v+JubY6LplkRbll1K3YQMPqDuQ8Zpw0VZiNjneY6fy4SYmZ5fvDqVc6fTLKtUQgW0Y9mmdF5T2xATeBorLnhp0vFgsqSxhrKXAMubm5z0sCf0AlrbQdH0RrwevKKzEvY5eEheh9hiwO13qEVEuA6wfUC0DPAGtvdB9QG6A4admbkVUC3aQrSBZg7DD5+qd53uXd3VXd3Vf8j6wTPZh4Aa6KYDQehxhcNvDNfLAtUobAGdNSzLlMPJhnRfxBCZ6em8JtFenIpC8av95J4gop03JOOWaV6Tm45EW0G69cBQKXwRCMKblozDhq2NeZJf84vlCfOwwqhIEFAj0dnzuCJWFpV7Xh3O2S8EGQbYj0r+2t/DN5pFmPFPn31OoVty03LVFrJjGhSp7pgcbFnfZNgqZBrWHERbrpqM1ThhP9lSu5DCtJTdHmosRO8gGEi17Iqt13gCYvVejy6fOzADadTzo/FbWm/4K3WfdZ1weLih0C1+CPjjr5+hQse9+ZJ210FGu4Q7OyhGphG2QqdZrzI+fnoJQO0i6m2MSeR3fl0ecl4VLJfZrUfqNKq4agp+9+g1z5eHPB4veL444IPZFc9DD/lOgKAsadLRpRGnB0sUA4fZlu0HMZs30tlsyoRvt3u8Xk+YZxXvVmOKpOV0JEbRrle4m4wX+3P58+78c+dJzXfbPeo+FE28VWyWKZPTmn98+DUA7RBiAiHSt97wL//yd1AHLfOi4qfTN4SB43+4nhAEIj39r578Ch0M/J/vnnJ9EmDPU7QaeDJa8MX6CICy301fScV3qzlDrzHaM41qLtoR11UuqHww8Lqeyj6ziWnrkK4NmU+2RMqyl1bc1CkPx0u2fcReVnK92Bcxzzhg6DSVDcXkLha64vup7PHvvuaqzIVqmdU0LuTz6yO0GjjKNxRhy+qqEMR8CNhuEz67f8bPr+9B7NHfZPiPhc3QOEPyxtBNNXVscZ2m2TdkRu7HzIiAYJQ2XK4n6LlnL6nYi0qqJOT8iwPGf/8dD/IbvuCIN4spwwC+04yjlus6QyvP/XzFL65OKOIWDhuGMiSMHfak5fH0hrPtGGUG/Kinusl4pwb2iy2tM0QvI6qHAzejlMf5NftpSee1YB/aoo3HBrLHLquYyajm4fSGv3mUwmXKZVHwZHLNZ/fP+OXLU3wj0VnrOkErz968uqVp1jak34mJmi4kMZZtHxEboWi+dxC7rnLujVY0To48P4jJeue0OLGFnvbYis+FUyTnAfWpJ1wrfLiLWfeIeXwLtgCzlS43vgaXQbPb576PZv9bHboocajXTUCrDUEoabS/dXrOlxcPsakcOs/2ryj7iEks3FPrBUiLlEMFHrYGF8ui/aIseDy5oWsMl32Bmwccphv8sLtAvaIro93S3aMCzyyqUHge5HIQvB+D6BRF1DINK/pByyG1W5KbwBNrAXAYIJvXHI03lC6m0C2xssyjUsbOnQFJWSboWLKTrNdY5EbsatGYnyQrPIo07FmTSurA7kGJlUWrgdYbwt3vHtNwsLcRKz2reVnP5aA+S1AftLytpzzIbgD45P47Xq8n9F5jvWZkWs6bkYAJg2LbxywvRgR6ICtaEt3jdgf84AP2JyW5aXkWX/JbheJfljnbjVjaHURbCt3hCLhfrJiENT89eMuqSzFFj7eK++kNtdu9zPRA2xtOkyWxsjLm5buE1y7kUbFgHDUcJ2v03mvcEAjo6CXzavRgxcfjc4Bb9du6i/lwLC+Kqo9YDmJC7bziX738jMfTm9vPagIBObJ5TX2ZSQpvV7Boc8ZFw+K6QBnPosvZ2piqC7HvUgIf0HtFqByP8gV+UMTKYpQjDBzHyYo/sh8wDAEXdcFPZm9ZjxI+f3nCs/k1j3PhZX91tc+Tkyu+/u4YJnAvXdF7RXbQsR/LyzdWlovPChaLglANBJHjOF3zvDuSdUCvOcnkRfS2GtN2IVnUUzYJf3D0nL14S6wsG5vwb148Ixp1dIsE9CDeH13Mw9GS7V7MJsjIlCfSjouyoPmgFTMb5LAEMIGn8wYVOLY2ZlMnUMtY/nR8zaoX6phPPV/f7PPp3jlVHxFFlrqPxBIV+PHsjNYbctPyj0+/prQxry9mqKKnbwxJ3jEOG6ok5NKNxPshFQ+E42zD1zf7tCc9k1nFg2JJpoRLrRiYRLWkZXTiXTIMAZNRzdPJQl4apSEoeuETv3+OI0e/EsBwlleMopZpVNF5wzwusV7zajtlkchzXtmQ/aRk28fYYJfH58Wfwg7CuZaGaLg1I2qsoW0NqlGEK0V7PNAcDQzhQLSE8oE0Jem5ujW9CUvox7uUiEC4uvUhjL6H7YMfPnTv1gt3dVd3dVf/Aev/w9oxQLUB2TskLROYfjmwbhMhAS8DrlYFn786ITaWRMuIK5QfUej4QRHui9Krc4bfOXiDUQ4TOw6mW1Ldo4OBVHcoIyoak/QUYUvjDDoYMIHjRbXHyDSkumNsGqo6IsgtN3VG7SL0DhQDqK2sB9wQCGAWCiH77c0ENwR8vjnhqitIdU9uWsamodiNZ8PblI8fvuNlNaP1QnFLc6GurW3Cuk8kRyqxeCc5VZftiHfNRMbVLueiHbG1kfz/25SuNfzo4B0P0wUfF2dkH6xIo57TdEmhG1LViRAi6plEDblp6QfFOGyYRDV7ccnT4op8XhFsfj0endUTvlgfAnBTpqz6lJ+v7vPXq3tsNwmDU5y9mwHQDwrNwChsCANH7UIWbYrdhvhGEyvLeTOibkOoNIt1Tu81WxeJg9yVJOvGUc9fL07JTcfLas51l7HsU55vDrBe4W8EsbxqC/73Nx9St/Lvx+mG67bg85tjkrDH9hq1U+79lw++4KPROXuxKKUe5Qs+ys8pkhZ22V2NE8BsllZi3TmpmEclme4oqxjmolDseiNrEt2zsTH/17sn+CFg0ef0g6ZupZt/Mlqw7FOhREWOi6qQa9LltxaB6VSMxN0QsOwzGhdy0Y4obczzzSHbOpbOpzFEqYBZUSzqMraGVZdy0RRclgWhcVS78fe6KyhtjPWaeVjyT59+Ll1uH2ASscv88ewMo0TBFhUdR+MN47BhmtZEWY++jHC9Zv9kxeP8mlhbMiOrqptGRC4obiNzImVFJbknU840rDjKNzRNiDKeKBMje7UTBb1rxly0I2JlCWOLiRzZqEEpz7pPmEaNuKtpEe3cG60YmZb74xUqdsyzilT3nHdjplFFEXZcNgVvqgmB8vja3FI4I21RgUdPJbG3MC2NC1l3sYQZRAOt1Vyti1vQcNvHrPudP0YwEKiBUS40O4AibBlHAsYCfLp3vvt/FYnumUYN07hmHAsIboyH/Zb22ApVTA/ojWL7SY9uAsKVwsXiQRM4MS03pdDGuukuRstBdSKEg7/1oXtXd3VXd3VXv9n6wZ1uP5P9ng8lLkQtQ6rjgEJbIQ0XgQQKpp7LsuDB4VLcoRCq07aXLifdmV6v6wRmkBtxPLpYjCiOW35VzthPthR5y7I1PDm85l66Yj8qWfYpTgXMItnfxNrihoFJXnN5PecmylhNUvbiLVdtjt1EbIuY3LQs+oxJWKPUwHab8OzkklT3fDL7lsaHVD4S/XXg6AfQxsGDkqsy558/+n/Y2oRXZrozgVacxitabxhFLd0uemUYAsbhr22FwsBTu5DLdkSkLP1ZxuTpkmWb8oU75qubfUlorWN0MPC2mWKUY9mkXK+FUH4VF6z7hKfF1e3PLW1M+8WE9KMVRov4ojCteBYkliJt+aR4x2U34qIdiVfpwhDfKzmM1sTKkqieG5tLd617nmZXXGxGVHXExNT8bPoSgC92frkOxaN0wfPZIW87TRxatnXMP3v4N0xMzSpKcbv39qN0wUU34vuDPTablPm9kn/+6Of8jy9+ivcByy7lJ5M3/PbkJX+6eMrL5oChCAiV400jAJYJPHtRyS+WJ2SmRytZXDqveJQtqF3I//3uCa4MYQJv66ncF2W4C8AMGJ80nNUTfjp5zaSo+dFIxDkrK6T4vjGUQcybasJnk3c0Wcgrj8unJgAAIABJREFUZnwyO2dsGsJADPDfriZEoQC8hW7Zz7fc2JyxrrmxGffSJS9vZrS9ZrRXYp1iFDYUiXSbjFt+e/KKftD8i69+n8PTJWUbMUkbHiQL3G6JWrmY1hvuP7nk/GYsjntWMTY1KvAMXtFfxGzzmnDsuJ8v+er7Y9jvOZhvcIPiaXqJHxSOgH7QfFSE/IsXv4+ZtuyPShQD+/FW7rM6ZR6W+N33ppT8vn5j8McBKhiYaQGhV7tOskhbrs4mJAfif/LJ+B2v6hlBACaW63oQiwXhOBRK3ChqGYfNriuuiZXlX//qU/6Lj7/gG7OPmjWcX405PlihGLhqCgLlCSNPqjs+vz7iR/tnvF1OCCIBlD87fic/O2zwBLyrRiRZT+81JnaESiKDrvqcJ8W14Cuh5aQQXe5Rsqa0sWAPgSczvUw6ypOnLX0noZRDIuB/UEZQK1S3E7cUg8h9lfjo6lY6XdXv/GkisCEkl7+2A/j3PnQFsQuwc1lSD3pgCALGUSsmNl1AEvfkUcdhtsXtAKVUS+7Yzy9PeTS5oe2NxJ7HMjYfRMI7zfMWj+Io3WACMZRhCNh2MSZwoGFKTesNhZEsqNb9+o+sRh2/dXTBk/yK1hvuZSuejw5Zr1L0A8/INIyNGMnkuShp7h0s2bhExvNmQmUjDpINY9NgjKP5fkz02RY/KDLdUZiOzsr4/WV5RKp7ZknN6+spdhkzPtnwJBXfATeo3QGuhYPpYtIHG6omIpv1PMmvKMKGf/vmkSir2oJY2VtX/3CXNfZ702+ofETlYhLVEwYOlXie/70D1m1yq7j5ML/gcXbN/1T/iOUqRz/0PE0vmYYVX4wO8HnLdpOwshmtNzzfHrEXb/lmu89BvEUFns0yJRs3rGxK7SIuqkKSkYuKRPVcdCNRy+mB3moxsB40Gye84LNmwkmyoveas3pCoAamE3loL7sRAJvvJzz4/W/JdEflYkHgJw2hEYXhR/m56OMHTRg4DqINNzbjXTkiHTWkoYy+h9GG3muiSYvzAafpkompMZnFaU1YdJRdxMFsS+NDJqbiohsTK0uhWy67EeNJhdGe352+ojANL8o5xnhuuoz9aMs0rLheFnxwcsFXbw7J9ja03vDHF8/4eHrOn14+4sPJJX/6+jHtixH6pKaqYoqiZtWnoq5aJcyP1ryo9/AEnD5YUHUhoXGs6oRMtfSDodkROmdhRd2H2FYzWEU2ral8xOPkmjxvsIk8O/vRltLGzA83LC5HbJuYp3vXfFkdoxnoB4UdNK0zFHsV9YsR5VjWXLG3LLuMy3dT+hPNvzl7xgfTa2ynidMeZzyP82tKG+O1AKORsly0I7reEE8ksdntmAK/M37Jn6uHhNoxyWpuupxJWJPqjjC1rLoENwR8kp9x1k04iLb8s09/ybJPhYvcGCbTisQI4+m3p6/5xbf3GR/Is/iH955T2viWmWN2iRF78Zaxach0z8jIAX+Qlrx+O4cCDhI5h1Ldk+qerjOMw+Y2izA3LcqFO9BxuE0wHoYA1yniiawSuyq8TcXwIfjEEy4l289FEtPuIvDRgO+CnQmOmJ638x9eINytF+7qru7qrv4D1g8fuk7ynjAD6iZkCKDdH8RhaCtUlekulXMvLnlbTbCDRgcDsbL8vaNXfHFxSN8aNtuEdwvpOi47yefKY+leI/Xr5GB9FXK5LFh0OcfRkty0zKOSe9ENrTesbcLzzcFutHE0zjDSDbULyXVLHPdMpxWVj5iGNXbQTLL6NicpDKRLvLHZ7s+95bvtHn909iFF0mHul/ROc9GN+J/PPt2NIgO5afkwv2AelqIxVwNq1LNZp4x0Q6EbRroh0y0TU7EfbnmQLLg3XVGkwgM9iVb89ugVedzRvCn48eg195MbxqYhNeKt0PaGi37MymYkqqfyEQubc9VLx1m3IZsmJtcdmW7pB822TBiNamLV86vyhK/LA7KoZ7NMOT1cylsexSejM/bCko9G55wmS56mV+QTScENA8cH2TnvLieEsWUYAnqv2QtLXn1+TBhbotDStLuIlkFT+YiDeCvm3SguKkl+XXw/ZWwaxqYW4/CxpbSxAFk+ItGS6jyKWlFJ6ZaJrtg3G/bNhofxNT/K37AsU6LQcrUtuBffUOiGg3xLFFn285KH8YJMdTw4WBDlHVp5MQ3XHaWNqVxMpjqSXWjVNKzwOxPu7+s9QDjQSdwTKcvESHf/9PhS7AGvYxbbjMuu4J8cfcU0rPlHB9+x7DL+kwffEj3c4jrhJm/LhK9uRPevs56mE8rdUbSmcxrrBMQbJS1fVie8bOe8bWbUPuKiEwAzWESEeY/Rnomp+Yv1o9v05m0bs+xTUt2xXGaoyGGt0PQeJAtOkxueplc8Sa/4ML/geLwmfrAlMZYvbw4ZGwFkw6Kj0C0/2X/Lr64OyQrJC0vi/pZv7gfFk+yS03jFXrxlllckUU/ZCAh51kzwg+JwsqEuY86uJ4zChnlUYgdNaBxNH/L15oDKR8xCiUQ6iDY8TBfUm0TijcKebRuz7mVqGs1kQlr2GZnq2Iu2TGalTIA7NVlhOq66AoVnulvrLXfqwGWZYgJHoTsWO0DbdZrGheSmpfXmVm0n1FPh+obaSRp57LCvc9zOP4NeEWQSv6Qa6XJ1HTDseLvKiUKNQVYN0VKRvlFk7/4uh+5d3dVd3dVd/UbrhyljjYATQSlOURihSzwYiS+qiwe+//oYT8DINBzvdrMAsbKcxCv+mw/+mkANJEnPwXTLabxiGtZExtJ7Raxl35bqniCA4H7FZFRTuogwcDyMr7kfLchUy0+KV/x49Jr/dP9rsrAj3en2M9XxSS76/1leExvLsk+5Hy04jpakUU9oZGf8i809eZPqnmfZBR9kF/ze/Dv+4+Nv6ZymbwzbJuKvb075yfwtRdhirXTv31X7nLdjrFe4XZjdZCrCjPfVD+JxGwaOJLBUfcTiumAv3jLR1W2nzaxDM3Aa3fAsuaB1hoODFb81v+QwXDMxFW/aKQD3owWP4is2bcIkk12oUbI7PgrXOx/enjftjJ8Ur/gnsy8lqqgQABOgdYabPuN1M+VFNedPrp/wN9tTmm/GtNuIv7h5yP9y+QnjSUWARLpUPuL59ojk/pbuTY5iYJw1ZLpjpBv2Q9mfTUzNxFSc5mucU3zyo1fMTUlhGlpnGHrFNKwodEMcCG1HG8+iysjCjuflMd80h3xVH/Hz8gFfNce8aWeSAFsm7Bdb/uj6I36xvc/b1YS6iti0CX+xfsSfLx8DsoPrn49vga+n6SVh4GiHkEx1TEzFUbgiNI4i7vgwv2Ckmlv3t8N4w4HZMDMll2VB0xuyhxuSnbjkV5sTln3KH58/42G24Kwek6ctrEPuHd9wONvwk/23XL6c41qN94pvygO+2B4zTyuGAQ7GW2ZxzUG04VlyQao7UtVxL17yZL5An9TkmexO//jyGX84+xVpLH4MRdzyUXbOYbQmTCxRbDmZrxhHLe/aCSubsbIp/aBJVC9m4UnHTZnyhydfMgtLTuIV46Lmus/5SfGGHx+e0XWG/iwjNI6Rlm4V4Hl5RKY7HidCR6ubiGEIOCo2+CHgr9YPOLuaEiaWg+mWmy6Ta7wzk7VecS9b8qeLJ2gGMt3u/uo4PlqitOfs7Yw4tOK522dYp9jWMf2gqLyA8O9/rxsCKhsyMyWbXnx1NZ6xEXN3FTuypGMvLGm94SRZMQ8rJrOKzmvCwLMXVTINK4tHgNtIOfKwIwktk1GNPq2EIhk5htThW40uFTb32IkTNzErwZTdRJ4tWwyiUssGqvue8v4PU8Z+WAacegHM2gA/cwQbja53Btt7Pfoq5LNPXvJ6Pdk9eNLub13CSDfEqkfjOZ6vuViOGE8bKh/xMF7w5zxkWwtgtr8LXwu1JHfqYGBk5L/NVIcfFF9WJ7cPklYyEgQBbMqE835Mpjoy1XG5Kvjp6Vtebmf89ugVrQ9pehmJjfL8g8m3/84BaQTF1K0AVsoRZT153PHf3vtLVi5FM8O/yCg+aXg6uaD1oYxDQ8B0UvJwLMBconr6QUtKqrI4FaARM/XJrORVOWMvLDkKV5RtxP58w9+Up7fAYGp6zlcjvlgc8mY74dPZO/bCkj86/5C9tJJsqC5ku0nYn284jtb03nDtRkSxRStPoVu+qo8Ym4ZpXnO1KlhVKVsXcxyvaLxchw+yS37JKU+yK/7syYbQOD4en3MvXvLfb35GW4co5flx9hodDPzbzROY9lRdxP3pkt5rXncz9qMtG5swMTWVTVl2CV0Zcb4d8XI859vtPufXY8yoo/WGi25M7cQEvEhb2t5QhB1/f/wtblD0g8YhL6wosBxONlytC757ccR/97M/Y6QbnhcHvFymfDi75N5OMffN8jOirMc/ketwYzP6QbPsM4xy/Mn2KUfJWh7QzuB8wIt6znfDvqj9ypi39ZSrrmA/ksTapo0ZZ83tdX2UXfPV9pA/OH7OeTfmJ5M3fH21T3hYM08qzssRuW758acv+PzPn+CznpNkxb/67jPmRUWRdPROC4/WZlx2I666nFlU8fnNseTxnaf4Rx150vFsdM3n9T0i7f5f9t4sRrIsve/7nXPuFjfixpqRa+3VVd1dvffsC3tIDSlLI0oDyxJlyAZtGJAA+8kvevWjAVsv9oseDOjB8gKLtgRSpCiR1FCkZobTHDZ7eu/q2jort8rMyIyM9cbdzjl+OFE5MxLYBkxgwIf8gEImshIZcW+ce863/BemVUQ7zPitwxd5uePQGNk8QCcOIfTuYos7ncPzZGeM8/Y7HSQ8e/WQWBXsZl2uRacMhw3G3RqP6FNoJ0QUbjnL9dKqZWts+tObhDS0GymhX7Ez7PDG7QeEssRclXxwvE5WedysD0hk5kwFlGajMeFydMZmOObRYoW2v2BY1OkGc7QRKM9w+coxp/M6t9aPeZj26TZStJHn7YFuMEdXCnznZr1emxLLgtuNIyZVRMdPiYVrK8WJc8+OVYEn3QGSqAwpLLcaxwyKxnmC95SROtfOubgbOhbt0XQpzF4q9NR3br9xiTz20SsFpB5Fy3nPIQDhGGllXZCtWUQJ4emPqcd/Vly0Fy7iIi7iIn6G8ZmZrjdRWGXRTQ2VPOdnA5BLTGAZZjHdOD2HS7U89/3TrEojmOUB9TinG6ZUVpFZjycnbcLIlX258QllybwIUNJ5jT0bH/GkaJEr/3zIY6wkNz4NlTFcxBgjaDdcdu0vJRL7rRl3T1b52zd+xH7eYcWfcTaNiWvOaued2RVeauydX8bT1kBpFfWgICt96oFjpyUy46Sokzx/xkxHtJTDTk6KEPkT8JmnmgqVlRwvGqxEc1aCOU1vwbwIaYQF31i5RywLErmgU19wMq1zJRrS9Rx87t/q59hoTfjiymNWgwm7WZe9rM1LnSdcjoZIYfiT928SrDgBbSUM+3mby9GQzjJDyI3HejhmVkXM84AoLGlEOc/GhyjMsh3heO0/17nPTEf0kjnjtMZqMMUXmkaY01zPmOQRYx1zLRxw68ohsyKk0IqDcYuzJOalxh7HRZNXGztk1mdc1YhUhYoqtBGs+DNWuxNmZcDDvdVz2BY4cemd3A0jY6/g/37yOXaGHVpxhjaCs2nMrfUBu49XCFs5G1tDJlXEHw2uM8kivFrJe0ebZCtujdX8kpkIHQwpcDDBrjdnIxiznfV4o3t/CcELqIVuWHQpGrnMOV0jCCoafsYLjQNSHTqMaZhxPE3wPU3Xm9HyUjaCMRrBajAhNz7PrJxwMGsyKwM2GhPWwzEPpn2SZ8+cuL+s+Nb1j3l/tMFwFpNOIq4+c0bHS1HCsB6OOSkbvNLd593hFulGwHwekeU+mxsjQllydNokjBwE82ZyihKWZi1jWHiUWtENUz63+pjc+OhlWT6pXPkd1Et2hh3i1YLDrMVCB3Q6c4fRrg344+OrxLWCelBwPEo4W4m5Fp3ii4qTKnEWUdK1g8Zzx3KLawVXghN+6+RVfrS/RVUq4vaMmQ7ZK7rMq9BpW8wbtFZTfjC+yWo4ZaGdgHkkS5pRxuCwTbxyQtQakyjHwpxmIRvNCZvRGadl4rLd1ozxvOZkM0/Xeb35mBV/SiRLd7064GbzlB8t3DDOF9pl9FWd3HjEQYEvNJvhmKOiSU16eEshKU9oV5GKpcSrX1GUHjpX4FnU2ENLi14tEbmi/lhRJlAmLts1NcPCFwgtUKnbH8umPXec/rPiItO9iIu4iIv4GcZnZrpVQ+PNlHNQ3SgxvgIBG7Ux79ZL/MMajaWlzmlZ58X6PgrDmj8ms/4526asFOkk4qRe55vdjxnpmMv9Ibn22PRHPMjWGFc1mlFGqRWzLCSWOcPSnValVdyqHS9FmiM0gtudAR8cb9CL5+fDqVCWxH7BSm1OrHLuz1fZCs+41DvjyahFZSU342N+++hF2kHG1dipSjWUg5NMi5A0dX2e75w+z/X6KbMyxFroeHPeHN1wECNV4XlO+PnRWZcX+4dk2mdn3OZGe8ikcCZ8q9GMXm3O4TxhP+/wXO0J97INtJE0a45V8/3RM1TGqXDNi4A/eHKLv3/juxBxDhsLZUld5ly/9YTTeZ3toxXk2t2lLKSDQNWDgivh0r3Ys26YOIuR0rDln5EZHykMw6pB15uRmpCxrlFUHo0oZ8MfYRAoYdDWqTKt+WMOyjaxV3I0TaiHBddaZxgrGFcxj9IV7s3WSCuf51tHvNza5/7SLuVB2qcXpDy8t0n38ojDrMVO2uVa/ZSjtIGnDKuJs+B5rbPHzeSEwnisBROksG6QOG6Rlx4rtTm3asfcqA34/vAZDv2EldqcN7r3yI3PH1a3OBF1gnrJ6aLOSn/KYdHm/rTPlfiMk7LBQd4irUJOd9t0L40ZlTHbaW/p4mzxheG4aPLpfIVce9xonXIwahEHBS2VkpqQoanTUo648BRupIRl/6yN7J4RiYrV2vRclHvFn/Jo0efh0YrL6psZkzLkUjAEYKjrbIVnGCs5rifsDrrU6xnd2EGnYllwZXXIYNbAk4aXG7ucVAnDSR3layZpRLKSc9kfnj+zhVWMdYzC8t5iCz/JeVK0GOY1NmsjJrOI61dPeHtyxZk0ehWzPKCTpIzKmPeqyAn1RxMOsyY34hMWlU+R+vT7E1bqc6amxje6n3CUNhjMGmgr2QpHPF70nG5IpbjeGTI1Ed/sfMzURE7U33ocZB2nbpbkTMsQiSWUJauB6yOPM8eCC0VJ2zcUWhEGFfdPV9hqjTkumlyP3GxnrN3gsOllSGmdYziCSFR0vTmZ8fGlEy9f8afn0LVUh8yW/dzcOMKVJ42zmxIWjKDeTZmLmhvuewYxCFmsWkxkCE8UKoP00tKw10J0Aull50xZe/LZqe5FpnsRF3ERF/EzjM/u6a5kaF3DRgaGIbISRCdwVsRwHJF3DbMi5HZ7QKyW03uUA87rEF9WbAZn1MMC1XZ9E4mlrVIMgm6Ukhmf6+GA0ire9zcdnGXtgCdlm2913mW37JEb32W+us73T2+wEs35wfu3oBQEXQcp28l7dHwH97nZOWXNG/OVdsFO3uNw3GSjPSaQmtz4fKX3KQDjqoYvNO9OLjkoS31KWSlnxZ3sMdURl+tnvL+9BddxQHEv5d5sDWsF47M6X7j5mDfa99BIyq5CYdDI85P9h9V1JBZfaKYm4lG64mi1wpEPnm+4qfPvHj7H6VmDv/bchzzI1phXIZejIeGSBjw3zvoliXKSKCfVIVfCUzLrM5zUCXsVGslu3mM37VALSgaZxzj1OSxbjHV8XoGMtbOEbynXD7dWnEONIq/i0UmPtdaUo7JFLAvSynefoTRklcfX+vcBeCY6QltBIDSFVfzu8EXKUvHM5glfaz0gFCWf3FllVga83NzjmfDI3YNohbpfMMldVvU47RKpkoYqmOmQ4zxxRoeLALsb460dkVmPWRXhCddLX6tN2c5WWGif2CsJfaebGnklJ2XCndo+r8SPSU2ILzTP1Q4orccnW320ETxfP6CnZrw5u8ki83m+/oSuN+OleJd/UnyFWekyoXZtwU6xwpo/JhKOsn1SJqz4UzLtkVeKzfaYQGnuL1ZJqxBtJU+GLcym5HI05Nb6gKNZQitasBmPmZpoOSNwGfSTwtHRg7BkcloniXJW/QknZcLuSQff16SVz8NsFWMF690JJ9M6UhreO93kzSdXWUumLCqfXpRyKxmwPe86NTJp8IXml9ffZzfvcbXv1tS1+JT3TzYoK8XsJGZta8SryS5PihalVawGk6UF0I9H8YGnmeTuvafGCYWXlSKJchrLvuyK72YUUli6ao4Shq6aUVoPdMwz8RFv6qv4vuZ4nNCuL5jpiCvBKdFSJ6Gr5qx5EyJZ8qPGJR6fduk2nJHqUwhgVvmUS6LDsIyxFiZ5RGk8Pphv8Vpzh0Q5mrCxgtQ4CKqxEl9WxDjCkC8MRkgWlaNpS2nQjYJssdQYzhQWhbBg6hpRryiaJeLUQdr8kUIVTswcK5AF5N0/x6YbBBXzWJ9vwOY4QoeClr/AuzynmAWsxjPePrzEX7v2IY8WfW7UBqx5Y5RveVz0+O7oNpeaYw7nCe0wY2oijosmz7WOuTfuM9RO5MUXmkhV5JVaioKXDHWDvjdlpGM0kk1/xN/ZeMst2udD3n10iZNFncz6XAlPOakS7FLIOLc+kShJVMZac8rRxL3+qj9hpiN8obkUDJel0RnjKuYH+XWatYzDNOGVxEk5Giu4tOEW6uuNxxwUHWZVQC+ZM1KuxFz3HRyrWLLxABSGuQlZiyZ8dLRGaRVXgxPWumN+y7xKpj1eiPdJTYC2kufax+Slh0bwV5vvnYuXPL03AD+sXeeYBg/fu8SD5IyvrLnN75s37/HOyRZdNeO55gF+S/MbZ687llsZLPUbpgyqBF9ojsoWUhgSmTFdhGgtl+2GmHkZkE9CRn7lYEFWsDvs0EvmXE3OGOU1vjt+FoC5DjheNFivTZHCslUb0W3O8YTh7mITTzgXZ2MF9+ZrnJSOiTgrA3LtUWlJL5zxeuMxcxOSL1sgW6EbIk02I96vNjnNYnyhuRkd88PhVeZ5wEL73I6PCGXJr49fIYlyTqd1KitpeSk/nF53mh1L8fajrEnDy6n5JY0gZyfv8XvTO8zKgEu9EZ+kazS8Dr+7466tV5+fu6A0VMawcu/9qGySG48PZ5tM8si5DkjD3d11vv7qQ2JV8vbeJeJafv7ZAoynNZphRkMVvBo5YaHMemgkr9Qe89v2FQqj2FNtVmpzngsPqEcFezc73B2v8kLrkG8kHxOIih8NL9FtpBydNPnmlfv8QusjlLBIDAZJYRVPsibNWkYzysitTyIzroUDPvFWiWWB8iy9eE653FjneYAvKrbCM/LlEPy1xmOmJqJfm7Po+wzGDb50+THXw2OMlbzvbyGEpR64a321vsNe0cVaQaY9TqqEjjdfSkba8wEdgKc0oV9xOXGQy4bK0FZwOE8YdupEouJe1mR32KEVL+jUUo6zBrfrRxyVLVoqJQ6GpCbg1K8jBAwmDc76MX+5+yEHZZvHWYfIq/DlEjNvAjLj8yRvcbRIznUXIuWYccYKAqUJGwtOx3X8uKQ0P+YpiLnCat+5hcQGuZDo2KJroDKBKKF2JFjC6//MuGgvXMRFXMRF/AzjMzNdbST1XspiHlLNfIRvKVrQ8Jz7KUsH0UvtEZEs+bUPXudXXnybM1lnwx/RUgteTXb5Z/uvoqThKG1QX3ElyM6iS782p+9N+TTrs5d1mBQh19pnnGR18obPVNfQVpLIBaX1zkkIXTXj+eYh6RWfXHv4QvNRuknHT1HSshrNGFYNfKEJZclWY8y8cDKOMx2x4k3JrM9B0aHrzVAYVvwp1xunnOYN3n2ySXdrRtebcW+xzkY8dS0Ov+B6eMygkfDm/KrTUNAe76ZXzksZKQzGSqRwZV1uPMrMo6FyjsoWO3mPT8ddWtGCYVV3ZA9huDfuM05du+NfTV5moX2uRW4w9r9vf4E3Nh4isdz/dIPrLx7wfOOQw7JNXebcG/dJwozSekxMjcz4fDDa4GRepyg9BlWCwvIvDl7mb2y+R6oDBkXCZjSiEeWcDBOGVZ1IliR+TtTMqYcFgagY6gYvrB+yPe7w9sEl1ppTPpdso3GfSyCcJVNmfB7ma3TjlEz7fKH+iMz6PO522Zl26Iczvtq4x9TUOMkbPJr0WK07JlMoSmKvOG/NgIPw9aMZm6sjlDBcDU4IhOaVzoErF6vAwd8wfL3/iH+5+wLt+oJ+bU6qQ56vP0FhGOuYlkq5Ex8ghWVWhQyzGsYKfr73CQ/SNe5OVplXIZ9Ptnnu2QP+6cHnnRB/VHD3eJWf793jSdFygPrKtR2anhPIVtKwd9bm2sYJqQ74ZLJKXMtR0p4zxEZZjW7TDXFmOuBPFte5N1+n7TuGYmoCHkz7nC0cM+xonvBvp3dQwnB/skKpFbtphzfFM6z4M5QwnC7q1BtuAPy46KNxZJynXwvtoaQlLQMmZcQ0jCitg5h9kq5zLTplPZ4yK0OUMHjS3asrwQml9BjqOlMToTBL+yRNrzlnUrqh2EHZwROGtdYUbSTHRZPSeAyKhGdXjznNYqbLFkokSz7N+oSyojSK290Bu7M2iZ/TCdzQcDtbYbMxwZOGe/M1rtaGbogclJxNYzxluN0esOJNeZitsk+HUJTn7Y9F7tOKnYTk02cfXGvhtGgQRuX5vhYslf0KrWgGjpU4W4SstqZ4wlAaRT3OWWQBSOsUFi0EE0mZGKxnCYYesnTMNGGhsQOzy4LFKlh5IWJ+ERdxERfxFyY+M9PNBzHEFfVmxryqYTHomuT90QbWCGzl9uzKSP7g6Ba/8uLbRLLk/nyVYz8hViWXw1P6tTmZ9vCE4aDo4Mvq/ISaagcRqawk9krGecTxtEG8WhDLnCdlm4fzPl9qPaKlUnY2Dj8eAAAgAElEQVSKFVLtenppGaCNZD/vcDkakuqQZujcg6c6IlY5m/6I7UmXlfqcJ7Mmfk+f90ovBUOG2mWbwzJmP20TqYpb/QEj7ZSO3h9vsl6b8OlihbfHV3ije49JFTk9B6lZixzU5WkPVll3Xal2Gecwr/PK1X3ePL3GL63e5bnaEx63epxkMXtFl643RwrDzeYJvnS6AX+l+R4lirkJSU3IP3z+/0Fh+e8ff4svPfeInWmbw6LJ5+tOjP1O55CH0xX+aPIM3+q8SyA0d1pH/EhvoYOS3Pjcna3z5ZVt7s43KI3iSm3Ix9MNJosIL3C0yeOySaY9eskcISzvzy/9lBh9t5GSVT5/NH6GjWhMJF2/8/Fihc3ojI43J5CaR+Mu34tuc6M24HjRYDV2w5XfHL7Ky419AA5PWwSrFVcbQ06q5jllXC21ECSW07x+biA4rBooYfh4vOZoyJMWe+2u61HnTvy7NO69DgqX6exlHa7WTvlHd9/gq5e2uR0fOYU4YSmt4p/tv3Y+fOsGc/7x9tf4ubWHlFpRakWaBdzuD9gvOhgrmFchkyqiH84Y5A2yysOXmo3WhJUo5bSsczhL6NQWjDJXtewuOmw2Jrx/sIFBcLxIeDXR/JXOe67XjqZEcZJ/mcir+Ph4lY3uhOdrB5RW8QN1nUJ7bNZGvBzvopGs1ubMi5DhJGahff7g9DbjPOJyY0Q3mNNQOYGqaEULpLBsRiPGlRukHmcNNqIxR2WTa7VTDmSLvWmL250Bl4Lh+eDxpEx4JjpaGnpOCFTFKK/RDefEMmfTP6Mwio14yvHCPUPPRk+Y6Bpnec3pNPgTpibiN49e5q+sfsSTosVqMGFn0XUGlVaewxRDWdHwcwrjsRmOWfGmJCrjme4p+36LZphxuEgYNupOQL+q8ShdIVJOG6MeFdSCkjV/wsfzDTYjp1AYeyVSGE7LhKZa4AtNx0sJmxX5chA3r0J6yZxelJJpD6EtvudRKEPlOY1coQVFVyMqZ4OkY4s24M8EOnQ2PSZ0KmTG+3OImAe9BbpSLOYB0tdwFiFzwdX6GbtJm8UocUMr7fHV/qfE0jG5bsQn5w65xkoKrZgWIVv1CYdF8xyTV1nJbx+9wH+09hGrwYT/a+fzdKOUZi0nlg7/+3jR5XCRINtuM/tgusnl2hm+NCxKn0aY82C+yudaj50U4tKV2FjBaZnQUgte6e3zne3bvL65R6IWDKsGscw50Qldb8agcgtsloQ8Tntsxc7FNDUBt5NjJlXE7fiIleaUo6pJWgVcbZzx1sFlvtDb4cXaLuC0HJ7G05J7VNaYVhG/tPIR7aUif2UlzSCn683Phy1tf8GnpseKP6NEnWNlkyXCQOPue2kl4zTi9cZjAJSwKCyffLrBf/PGHxCLnMz6TjV/ybx5sbbH89E+GsmwarDujxlUCS/HO6TVV90wKRjySu0xo7LGftpiXgZ8u/M2U1MjVM/yJGpykrmh5y92PmTLP2NqasQi51Z4RCxyhrpBM8gIWprn6wfcCg75ONlgoZ1exbe679FTM+4vVnnj5n3unq0Ryoo70R4Si0Gcfy2sx2utXf756BXn6aVS2mrO11ce8AeD247Rt2w5PClabDYm7E9bjBY1TEPy+fojXqz5RLLkxZf3mOiItkr5vrzJvAxoqJy/d+W77JVd3hpdY1jU+Qc3f4fMBnw6d5oMR5OEdrDgl5rvM9L1pS6EW9O67lpIJ1mDceHYUG+07mGs5NNZl0BptsIzroSnfG90i5urJ84GPB6fD9Ik5hz5sVUbsb9os5rMaAYZN/1jJiZivTZl5hes+DO6akZqQ3rhjCd+wuWVM15p7nIncgfZU/2KuQnJrU9aBYxy104bVg128h5b8RiFoePP+cOT21RW4kvDpIj4NO9zPXQJx9ca98isj7GSk6LO7qzNVt05kDzI17kT7fFscsT3jm84EfL6DlMTcSM6xutrHs76JGrBo9kVPt/ZYaojJlXEC/E+ZkltbfgFgaxY8aakJqQTpMyrkNOyzkHe4lvd94hUeX54BFI7qU7hDvtB0eAgbaGERRvBonADwOfrT3i06DspR63YCkcMqzp7WQcpDA2vIJQVlVEMy5iDeZPb7QGzKkQad8iXlaIslXPyaGiEtATHATq02Mo5SaAsVgrnIJFYak8E6SXzmRuu+9wv4iIu4iIu4mcWn5npSmkRgbPKSKchwURQJpZ+MHW+YTWzPK3cCXQ1PCES5fkwCVzGtxLN2T7rcjU54xdbH5JZx4Pfm7f4+5e/S2EVufV5pbfPWVFnWoYkKuNWcEjXmxH0NG2ZUljF19oP6HtTHuRrfH51l7kO+NXV7xOJiu1yhch3Q5kvNx5glsOenbzHc6vHrARzjsoWAPcXa6wGU37z+BW+vfoO2j7l1Hsc5wlnVZ2pjqip0v2sbPJibZe9osvtxhEfTTd4ce2QNX/CrWAAcO5GDPzYA6sR8r88+jpfbH3KTf+Ywiou1c6QwvKN+l18odFI/vHg57jdGpwPQkoEdeEqh7kN8NG0/ZQPxxtc7Z4BkIiMlID3zzb4wu1tIuFchVMTIoUh8ip0KRlUCXtFl+Mi4evN+2wXKygMU91z6lhBjraCh8UawLkz8tuLa5yVdf7dk5ucDBvU6gXP9Y9RwvK92bN8qf6A+8U6N4MjRibmg8UljBVMipDL/ikHVYezIl6WgFN6asagav7UGhsWdf71+GVGZe3cAw+cFOWkjKj5JYVR/On8GvdnqzybHPHpoEctKvj1wesAbEZjdidtxmcxm2sjXk12+P70Nl9L7jGomsxNSN+b8PuTOwRS0wkXrPlj6jJnVkV0gpTrtRMeFas8Gz6hE6QM8gab7TGzKuS3zl6j6S3OLZteSfb4eL7usiUrWRQ+Xl3z+6PnSbyMWRHiK1ei+7JiLZpynDVIwozbdYfL9kWFtnIJMzTEsmBSRvRqKd5yCBuJkn444ySrnzMGM+NzmjfO71NbpVz2RpT2xwPIwiqOghZlLJmV6yQq46Voj8Iq3lpc59nwCXWZ012bs1P0+OPhNW43j7kdHdJXExK5wCDpqRnaSl5u7iGFZX/W4nbjiG81PmBuPSLpBlnXkyF1mbPujZibkI/nmzT8jL435T/uvkVpFZkNuB5GXPGHbESTc7ffzcjS9ea0bMp21mMjGvOVxgN3bTIl8TIy3+cobVBbOv0mKiO2Oa8mu1yKRozKmCTKGc5ifFG5oXbNQfIeTnvnEqhPK8vM+BzlCaMiJpCaS/Ux1U9U5MfjhGLmWmresY80girRFKsVMlV4M4GOLGohkRVkfUN9TzK/qhFGIMoLRtpFXMRFXMRfmPjMTHejPWb/rE2/MWO/8MjXNP6ZYmfRJS88kI5ldq0+5Cv1+2TWZ6RjmrIkkgsi4U7jbjDn9sqAlWDmWE+4E+u17j6JWtCWTpnsD6tnafkLHhQ9JE4DYMs7Y2oi9qsOl71TXol2SG3gBLFlxSBvoJFMTETfm/DFlR120w5NmRGJkoflKr7QtIMFbT/l6/V77uLqjqf+Rv0uALtVj92sSygrRkWNN+p3MUiOdcK/Gz/HVnDGlhqTND7ik2IDKSwfTTeY6ojdqo22EoNE4no6T7//KN3kr1/+gL43PRdezpemeMc6Ob/X755u8UL3kNz4PCxWSU3gTnSZM6ianJQJpVV8feUBb42u8XunLyB7FiUMn1/ZZVTW2C7659C1G7UTml7Gx5N1LvundNWMXmPO9+a3+Ur9Pqe6QWZ8nu0ck+qAuszpeTNUYvjnh6/R9HPuRPscqjZnqzHjTo3DNOG5xiE3/WMue6e0VUZfzaiLiolNuSc3nKGnV3LTP2XLG/EgWWNSRVwJT7nsTWnLBd8xd7gUjfjQbPCl1iP+euMuCoH+94RIv7u4wv+6/xUSL+fv9b6P37P8j8ff5LWtfVbDKf91/w8A+O3Zi0z6EfTBl5prwYBbwSE9Nact0/O/9zfbb/Fr5ktuGOZNueyfMYrcsO6Z8Ihr/snSrFBzs3HCqKxRVzlfTR647LFq8Td67/Dbw5f5xc6H3Ms2eH+4iRAwK0N+vvMJpVU8qPUBuBqeUFrFcdFkNZqxN29xXDQ59FskasFU1zisWtRljkHQDhaMihrd2pztsocvNE214HCeMDURcxPSVnNebu7xb44ciWNQJQx1jF4aoz6dB/S9KQ/MKuu1KXMTUliFQfAwXeVGMOBUB4x1TKpdRhfLgp6aUpc5TZmRWd89g0jeGV9hVgZcb56ys+gyaQWkJuAga/Nad4/3zjaZd0PaMj13GV4Lp8QiJ5E5UxOSSJdBF1bRVAv64RSJJTcefTUhEJq3hGZU1pAYmjJjYiKu1hyM82pyhicMbZUSiYISj7rMwXckpnFaY605pbROqyWWOWkVcDM5JdVuv2hJZwulkaz5E4ZVnUHR4DRvOAZdmBKpin5tzmBRZ5qFLOqBg8caCanCeK6PKwyULYM/lkgNWd+ZVQq7NPT9/7vpSmFp1HJKo6hFBaUM0aEbdKy2p0xCV170ghmPilW63oxVb4JGMjch21Wfo7LF9rxHP5zxUn2PtkyZmogvNB7xzvwqAPtVB4DPt7Y5q+qUK24Dy6xPREkiM7oqXXpxCVdWm4CTos5GbUxdFGgh2C877ub6C0Ympitn3PSPeVz0aHoZCxNwN99ALYdcXW/OSMeseyMue6fshV2OS+cMsV2ukFuflkppLsXZPyw22Su6PClci8JbisLsFr2fmro/FeNWGF6p73J3scGgSmirOQpDz59zkLc4KDskSybOL299wAfTTccUU4vzA+ypoPdr8TaPixX+1fGLFEbxy+vv44uK0jrBDm0FD7NVx6JaDjSP8iYr0YyRdhjczHr8QuMjtJWsqimFVNxJDrg72yBaogciWfK13iMO8hZ1UbDuj/h8Y5u3Ztc4sE0GRUIsSxIKsiUK5GHV5bI34peTd2mplL2iy8iE1EVJ15svy+ec7bLFqprxarLDTEe83t/lD4fP0lMzfFGdT/PdoSUYVAm3kwG9YMb9sktdFLzeeMwPzQ3afsqhblBaxbiKkcKwM+vwue4upfW47I8Y6YhgideMREUhFM/XDzgpEzSSAE1d5ihhXFkq3TXFqmRWBWgrWOhgiSIJ2PRHaCTf6r6HRhKrnOc7Ryy0j8SyV3TPsbDGCj7N+5wWDdp+ykjW6EZuev6n82vEqqDjzdn0z4hESWE9fmf0PI3AuSg8Lvp0vRkHeYsrzdF5if5vzl6gMB7WCkKvctdlFZEoz73gwLUZplXEajg9d2EAaPtu49vyz/BFxYfzTQqt+MPjZ1w7Rje5n6851hqGzPps1kaYSPBHh9f5y1t3eT+7xEmVuOsqYy7Vx5RWsVN2SU1I20/ZWXQJmg6D3JYL5iY4R2pcDU8YFIkbwCU7BELji4o78QFDXacuc3xR0ZYpqQ653TjirIq5Ex9wwz9eOkd7RKYk1CXdxoyTtQaeMDwTHtKUGSMT01YpoSx5Jdpxz7z1yYzv2psiIJQlLS/lcnS2ZF9KpjpipkNir+BANpkoQ6oCylKhpcGWisrgHHWMoGwboiNJmYCtGYKBIl/Rn7npXrQXLuIiLuIifobxmZlupCo6tZR5EeKpZSZXCm7EJxwvGgx1TNNfsOJNuRycMqiaDKsGbeWGXpEs+VL9AfFSvLqrZkSioq6mjHSd27VDLnsj0iXX21jJuIr54GSD5+uHvB7tcLdYo7QeiVywqqa8vbiGRvJ40WOrNiYUJcc6oS6d5c5p0Tj3edqteqx7Iz6YblEZRS+cMTXRskUREgknKn5Qdtgte3S9GY8WK1xtnLkMyFrqMie3Pj8cX+Ob3Y/pek4+7odn19mbtPiv1gdsepPze/bvD9Peya6wFbpsZqprxDJ3zraeawNMl9ZGLZXyzNLypC5zmsERhfVITXieDUWyZLU2ZVLWaKv0PItr+6mTu6wdMtU1Wip10pqRy3DuhE8Y6DptuWC36rKuxhQW6rIilgXdwMngbXkjpGfJjL8s0QoK7bLZhsp5tnXMs/ERI+0gUpGsOKjaxCL/iZ+5jFlbybFp4IuKVX/CTrHCln/GsW6w5Z+xa7tOTLv1mE3vjBLl7I2WLKPSSk7KhKa34Ho44KY3RArYKbvUvZzr4YB15T4LJZwzbK1VLgdQBUMdIzFMzFLcWs3ZLTtObMkKIlEwtz4ayZXglMwGzK2PwvAka/LF1qfndlGXfccMzKxbpyMdEwhNqkOmZUTs5Xyt9YBYFgyrOiv+lPenl3gtfswkjHhrdp1ekFIYjyvhKetLJl1m/aVkpMvYv7H+gO/s3+YvrX7CN+p3eVj2+VrzPveCjXMB/F/uvMOP0mt0/TnDsk4oSz7JNxhWDX5j9yXe2HjIajBh0x9xp/GEw7zFjeCYR8UqmfUJl+tot3QtvOu1k+UaWjA3IYOqyX7e4auJ0/Woy5xEZrw5ucml5pjUOC2PF2u73JfrDMs6hwvXJpuaGnWZs7PocqU2dPY9wpy7UceyoDSu9L9ac+0bhVnCwNwAbKjrbq2LCl8aXqzt8afza+e+aJn1GVYNpiZy0o1CO4nMaERu3PPyVLwpVjmDKqEpnW1PQk4p5ZK5GZ3ff73EC091bclirUi8jNWacv5sRuIpQ64slbQYYbGZIhworBLkKxYTa/As+caFiPlFXMRFXMRfqPjMTPejnQ2Ess6s7TSCWKNjc24Hoo2TRut7U7bUmOf8UyIhkIASArmETUXiU3bKLj0157Knlz8/5FAn1IUmWmbRczvhQHX4u9fe4k60hxNVM0yNzzV/QFs6QsFR2eJXej/kN85e51Z8yr1sg19O3uW9aourtRNuhUfc8ge8uXBOpP/Jylt8nG3xcm2HtnRWKatihlzadNz0T1FYtqs2R5FT4GqrlEQ6we6X4l3+i+73iYRhajw+zDc5rje5VBvxUXaJ95cwL19U52ynp73GZ6IjTsqEX0g+cr1nBI+LFXLj83rjMWo5eHvfXuJJ0eZOtE8icwI0kdAUSILl75S+4stNyfdGt7jhH1OXzlG4qTJ2iy53wn2XIQjDbtVGYUhNSGa9ZfagWVdjfKHPpSZLq/CFpqfmnBqXZTxlJR1UbdrSkRJWl+LiUx3RVhkKy8Oyx0vBEftVnbbKnGqWlbxaf8wnxQY/V3tIZn0eFau8Ub/LoW7xXHDE3SImURkNlfOV+D5tlREJg1oO0jSCzEpei7f5o9ltSqu4W67SlilNldHyFvS82TlM6nPxpzzI1zkqm7xaf+yqBVHy3fQWX40d/Ki0ilfDQ/403+SkSng2fEIiC14N97hbrNJXUwI0c+vz3278HgdVm/9p+5v8l5d/wNRE9JYyhdrKpTSp5Ho4YCMYsZ2tOLlB4/M7gxf4zzfeJI1DMuNTlzlb4YgVzxGC+t6Erpydf3bgoE33ijX8UHOjPaTvTZmbgHU15hO9gS80W/4ZTZmhETRURmkV92erbHXP6ErH+Pv6858sIWMu42uplKkXMdJ11v0x4Cyo3NcFGknHm7MrOtyIjllXY14OnvC12gMmJqQuCzLrsW37PBMfc7V2yufjR9zyz5gaj3fNFV6oH3ApOmPTc9WhtpKoW/Lm7Ob5sx4Lj9wumNqKLVVwKBe8M7/KzfqAL9cecdWD1Braak6/NuGGlzG10JeK1D/hMGyx4s9oq5Rr/pib/mj5mQoyq5iYkO+lt1nzJnwp2kMJKK37/4FuOn2TpS4FAhQlvnKQPaPkj4eQviOWTHWNJ8pJhWXaIy0DFlqipMH6AmsFNlfkqxqZyh9rLaTKCTEEF9oLF3ERF3ERf2HiMzNdWyqkVyGVJegvKE5rCAN34gO25z2udM94Ndlh0ztD4zJcXwi0tZTWkllDZiV/sri+nMJrTnUdJSyb3ojtos+6mtJVFQrBDW9CGe1xWLX5UjhFouhGR/hC4iMBj5+v7eLHe8yN4W91/oSBTvg7ySN8IemrHb6TXiEWOV1p+Vb9EYn0ebeoUDXLTf+UTSWRCAxQYl1WjsQXkq4as67eJRKarnJZemktbbnNipJEwgcFl71dbgdH/Gl2jb/euMuKjJZ/8z884cYm54Z/zC0/JRIKiaAu7rOvW1zzyuV1wdwcU1pFWy5oy5JIuNfXy2m+QtBXMyZeDU9qmjInEhpfWAehsR7+MluMhCERGW2V8qRskxkPg2SgPWJZcLrsmz3ViyitYmTiZW82ZljVnf1STVBYxUHZcXz8osG3u28vKxDLNX9ItqQrg0MIXAsGFNbjWrRLgaQtUy77p0Sy4pp0vdEt74y5Cbln1+mpBV1pMYBEoJbrpy4Mxj9hEDW5ERxzy5+gLfTtnHkUctkb0l0SBKQYLtEuHtf8U5qiwBeWb9TvnffYfVlSWkFPzXihtkdTZgQYNIK2SpcIBkNb5MytTyxy/vbW22grmZoaSlhikfO4XGHTP+OTbIO2SpnpiGHpiDRDXecX+x8zqBJ2si5XwxNOdYNLwZBBlfAka6ISS10WJLI6XyMxLpPdLjwiVbLmjempBVMTsOaNXXYtUza9GZmVbt7gGb7WfcAN/4REaALx043EuYVHZZu+N+X1aB9/uTYfy5S+mhMJQ2kF36mavNzY43PRNpe9nFio5brLmBqNoeTn43vsV00GuklXpcRCkHiGv5m8w3bVZrvos+VNiIUhEmJZ9fiMjGVTeXwvi5ZVrmRuDPtVm1gVhLLkWDeAGZc89xykNiS1lq5UHGnNvWKLkzLhtKzz9fonRMLiL59fiUUKDbiZ0ZY/JLWS0khOTczchIx0zJuLm2z5ZyRygY/bhxQWJTSFxfXzTehQDSbgoOgwKBIWOiCQmq1kTFr5LCqfSRaRyoBKWMwoQBhQc4muBEKDrltE8efQXghbGfk0xBoI7tfgSomYeRyVLQKpaccLIlGy7qWsSY98uYEoIVC4DTgBXq9t88fpTe6ET1hXbjO+W7T5YH6JbzfuLzn38H7RP2+E72pLX2paMqS0mqEpKRFcUREVmv/h9Mv8XPIJ696YEsPjEm77IZ+LdtmtWigh6MgaJzploDucVg0+yjb5W8136EpJJBQhHqXVGCwDXfDH2SWmJuKlcI+WzEmkDwK2K8XdsslER3wx2iEUlneyKwSiYqB91PmV/zjU8iEwuIFTai2gUUIQCUtPzimtA/VJBOteiuGIrizpSjewKTGU1qCEwEfSlSUjNePLzUd0VUUkJNpCWzqG1WVVLDctyFTGbiX5ZuNDXgpytNO/RyJI1RhfSFKryWo7bKs+X49OKK0hsyPUUnD6q6ErSafmjH8zfoGXGnu8Gg7YUHW0NT9xrRKIKK2mLc/IrOCm18DgcSJTVlXKmlI0ZQ2DR2oKTsyCw9oBa0rQEOFPH1iCZQsqY90f01fz89ec2Jwt74xNVbGy/FksCqZmwqYf05M5VzynEaGtWb43973BEooJPZly2/eQROS2IpETujIgFLXz1xiKghLFZW/EurJoa1FC8EIwRgIvBacMtM+bi5u8njzm5+IHJNIwMor7RZ+r3RM+F55QWMuBrjHVEV9sfcoN/4S2/PFB6i/bcMqbkFmfr7Ye0FMzutLSljnxEga2rma0pQAsL4V7S/y5kyhU8j8sWSNh6asZcnlfI+EOtE1vRv3p/RXwhdqnjHQNKSynRvJO1WJuQl4OnrCm3PYwtRWRKBlWdf7P2Zf5pdYH3PKHDr4pM24Ex8TCUJcSbe35ULUu4K085JY/oi09DjT82viL/Gr7hzRlxn7Voa0WXPIsD0oH53ouOAbgQemjEXy5tsMVf8j/dvJVIuHWPADWEghBAChZ8Upth8J6xMIQSEtfTSnshKmp8eVo55wh+rTN8LQ1oRHEFMSqOBeA73tTDv0WR2WL07K+bKfWyCsPtRQ+N4U7nKp2hZp5iAqsB0QGss9uIFy0Fy7iIi7iIn6G8dnSjic1sAKtBfrOHI5r2I2MFX/KzcaAyip2ih6/bxWb/hlXvDNiqc9LgKfl9DVvQtL4aDkQEiTC47lgxHr/DzFwftq/Gg441CHvZ5foS0NLhqS2JBKKS14diWRmMpQQ/Hf9H3BkKqbGQyJ4IQiZmZxIGC57Y3wkZ2bBior5QnjMQznj1WiHrpQoBKmtzrMXiaArff5qfMRjbZalx49/p69K7vglofAc4wXDpn92DiH6rPjJU+3pa0lh3T+WJTVPWwmCsfEYGImxgmR5L7WFqREc6h6jpbj0oQ7pL5XYCuu82Q60t2wvaHarNj+YPIPfqmhWTrGqxIHo21JTWoEvJI/yVbbzPgfxfSIBu1WT/bJDJEreFxkligf5OsYK/o/tL3J2yekA3M/W8YRmIxjRVTNX3hufkyphP2/zlcRpXwyqhLPSyfE5eyRBbn3mJuSH4+so4WB5c+PEwRUGKZz61tz0+f3R87zU2ONR4KBNIx3zIFtjJ3pCz3PaAJn1+XixxSfzNR7XV1DCsJt16PlzbtcOKa3ioOiQG4+joslC+7yY7HOQOVJOaSUvN/bIjc9+0cETGoXhX+6+wP/8wj9lqN2wK7PO0iYzPkpYtosVxlVMbjy2gw4+bjj5cbblSDNq6tozVQclDLn2OawSAm+MFGAszK1ibgJGJuag7HBUtuh6M3ryCQCHVcKgai7B/WMioZlbpx/gqx+3KMxPrDUDaAtzEzhCgJX4uJI6swqFxhfudxycS1BaybrSPBPNKe0EgyKz+vxvRbLiTrTPX6p/Ql+Bj3KVkq2YE5JaSWDdmt7y5sAxhbW8EiwIRcTMFlxSin/Qe4exEbTlAjyoi5KxMTzrC9bUIamVtKSiKytqwufYWLoqZSN03nJDPSMU9qfaKb6AdeVIWT+5n/jC8rlwF19AdP7by2dNGCJrKG21zHzlcoDroaxBe4JoSZ4YVzFnvoPHjoqYURhx4jfIE4+qUFCr0JVESIvNFeL/I5W9yHQv4iIu4iJ+hvGZma6IK+zMp0PNi6AAAAQmSURBVLbrI7SPCIFxjX9o/jK3Lx8xTGMKrfjPbrzFu/PLjMsab7Tv0fcmbjiBZW4D3prfYKJrDPIGf7f/AxKZMTItBlWT54Iny5PGY7/q8Gne573JJcApMf2LwWv86vr3OaqcGd2vn3yD/7T/x3ycbRHKkv28w6v1Heoy5zeHX+elxh5vT67y7d7b/Ouzl/mlzgf8o8ff5hurD/gn732Jb995jyvhkK43W2YszkCyLnMOig4TXeMoS3gp2WfFm2IQPM5XGJXOybStUh7nK/xgeJ15GfArW396rnfwVBz9aWTG/3/bu5/ftukwjuPvOHEcJ06aNsla2mZt2mpsBXVlMLF2TDsA0pBAcJnEH8Afwf/AjSMXJiEmhBDc2IEDmgZcGBlb+aGWtEm7LnRNml9OXMeObQ7fLMedUE7f19kHX76PLH+f5/Pw1eFrvDWzTXaYvRALuWxZ85TMHNlYl3vlZd479wcvRNv83Fjm7exfos3LV3klXqHUn2FJO+ZkYPCwl+d+/SyuFya3bOIGYcp2ji8fvE5Y8/ho7SeaboJ42KHrxdgxcyghn7ImRrQ/27vGxnSZS8b+KNPhXvMcHVdjKzFH1U2LhYPmnFgkODnA8jV+ay9Qbk+RT7W4Vdzkk6tfs2nskAn36PgxPj14k3dntphVm3goZCMmmUiXz/+9xjvZLZGWNWyZKlpLnNerfPdknbzRwvJF7kNi+NXuDS++er5GsbdIMmKL7IxhylwvpInwakW0ttUHSb6vvsTGmQp+ECKrmqTDFmv6ASnF5ov6Ju9PFcW7BQoNz6DlxZlVm7wcOxTjsr7OrccbfFy4wyW9wj/ONLav8sHCI+501piPNvihvsqr6QPu1lYwVIdmX2c1fURvoFG1UnQGOjNaG9OL0XJ1dnrTtJJxLE/jyEmxa2bpuVHqOYN9K0M+3mRVf0I45FPu59juTlNuZ8gnWxw5KUxDp+2JlTd3ayu8OHHMZMRiPbHPj+0L1OwkdTvOG7k9MRCiiHQ/YNSKVrEznHpRlJDPw5M5VibqTEXFws1Da5JZvcWj5iyOF2HjTIVFrUaln2MpdsyvnUWuTpRGbXAXUkc03ARPT5Ncz+7QHw7QAJw4BvlYg4qd4WJCJPF9U1rnRuFvrhi7KCGfp+7EKEuk1Bdpdr+3z3J9apuiucCV1C5OEOH248t8OH9fDJp4CW6XL3Nzscgv9QLf7l3k5vIDClqNpHI6OmceCn+ezmOEbfJqg6o7SVwRmdymr3Neq4qL42E+yrMcCg8xKOEEYdwggu2LTdnPLpKbTpyuq2ENVOyBSs+JYvdVnH4Ev6uinkRADyAUoPYUgjCk96FTeH7LWCgInv+AJEmS9P+RvxckSZLGSBZdSZKkMZJFV5IkaYxk0ZUkSRojWXQlSZLGSBZdSZKkMfoP4ceo/hSAIFAAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sample_rate, samples = wavfile.read('001ca53d.wav')\n",
    "freq, times, spectro = signal.spectrogram(samples, sample_rate)\n",
    "plt.figure()\n",
    "fig = plt.gcf()\n",
    "plt.axis('off')\n",
    "plt.pcolormesh(times, freq, np.log(spectro))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "NXzLIw9EaB_O"
   },
   "source": [
    "Download all the spectrogram data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 1000
    },
    "colab_type": "code",
    "id": "IsipOIHWaFQV",
    "outputId": "76542e83-ec27-4dfd-c3f9-d3402faf99e1"
   },
   "outputs": [],
   "source": [
    "# This might take a few minutes\n",
    "!gsutil -m cp -r gs://ml-design-patterns/audio_train_spectro ."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "ET633QrNyRLj"
   },
   "source": [
    "### Phase 1: build the offline-optimized binary classification model\n",
    "\n",
    "First we'll move the images into labeled directories since the Keras `ImageDataGenerator` class uses this format (directories with names corresponding to labels) to read our data. Then we'll create our training and validation batches and train a model using the MobileNet V2 architecture with frozen weights from ImageNet."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "DfyY63X4gbP5"
   },
   "outputs": [],
   "source": [
    "!mkdir audio_spectros\n",
    "!mkdir audio_spectros/not_instrument\n",
    "!mkdir audio_spectros/instrument"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "lA2P4I4daFS4"
   },
   "outputs": [],
   "source": [
    "keys = verified['fname'].values\n",
    "vals = verified['is_instrument'].values\n",
    "label_lookup = dict(zip(keys, vals))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "4c3pyhx4bFrp"
   },
   "outputs": [],
   "source": [
    "for i in os.listdir(os.getcwd() + '/audio_train_spectro'):\n",
    "  id = i.split('.')[0] + '.wav'\n",
    "  is_instra = label_lookup[id]\n",
    "  im_path = os.getcwd() + '/audio_train_spectro/' + i\n",
    "  if is_instra == 0:\n",
    "    !mv $im_path audio_spectros/not_instrument/ \n",
    "  else:\n",
    "    !mv $im_path audio_spectros/instrument/"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "Fpyda95Bcnf8"
   },
   "source": [
    "Load the images as a tf dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "Jhk6v2u_cpjl"
   },
   "outputs": [],
   "source": [
    "data_dir = pathlib.Path(os.getcwd() + '/audio')\n",
    "class_names = ['not_instrument', 'instrument']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "zKtmC-j0dnQJ"
   },
   "outputs": [],
   "source": [
    "BATCH_SIZE = 64\n",
    "IMG_HEIGHT = 128\n",
    "IMG_WIDTH = 128\n",
    "STEPS_PER_EPOCH = np.ceil(3700/BATCH_SIZE)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "_PxSJF73d3Df"
   },
   "outputs": [],
   "source": [
    "image_generator = tf.keras.preprocessing.image.ImageDataGenerator(rescale=1./255, validation_split=0.1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 34
    },
    "colab_type": "code",
    "id": "6zuPlte7cpl3",
    "outputId": "119a45d0-c0c7-42d9-b483-ed8abca7c758"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found 3710 images belonging to 2 classes.\n"
     ]
    }
   ],
   "source": [
    "train_data_gen = image_generator.flow_from_directory(directory=data_dir,\n",
    "                                                     batch_size=BATCH_SIZE,\n",
    "                                                     shuffle=True,\n",
    "                                                     target_size=(IMG_HEIGHT, IMG_WIDTH),\n",
    "                                                     classes = class_names,\n",
    "                                                     class_mode='binary')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 34
    },
    "colab_type": "code",
    "id": "bAX7MTcRslBR",
    "outputId": "da9d7e78-c1ba-4a43-cc99-c4a5bc6193ec"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found 370 images belonging to 2 classes.\n"
     ]
    }
   ],
   "source": [
    "val_data_gen = image_generator.flow_from_directory(directory=data_dir,\n",
    "                                                     batch_size=BATCH_SIZE,\n",
    "                                                     shuffle=True,\n",
    "                                                     target_size=(IMG_HEIGHT, IMG_WIDTH),\n",
    "                                                     classes = class_names,\n",
    "                                                     class_mode='binary',\n",
    "                                                    subset='validation')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 34
    },
    "colab_type": "code",
    "id": "yCanTX_QcpoW",
    "outputId": "b8ef441f-e2f9-488b-c9b4-06cbe4532bf2"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3710\n"
     ]
    }
   ],
   "source": [
    "image_count = len(list(data_dir.glob('*/*.png')))\n",
    "print(image_count)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "mQjMIhDlemZl"
   },
   "outputs": [],
   "source": [
    "instrument_modellabel_batch = next(train_data_gen)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "gd5wsnAczpIq"
   },
   "outputs": [],
   "source": [
    "val_image, val_label = next(val_data_gen)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "hbAiQhHpZs6n"
   },
   "source": [
    "Build a model for binary classification: is it an instrument or not? We'll use **transfer learning** for this, by loading the MobileNet V2 model architecture trained on the ImageNet dataset and then adding a few additional layers on top specific to our prediction task."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "970fnRcQ7miy"
   },
   "outputs": [],
   "source": [
    "mobilenet = tf.keras.applications.MobileNetV2(\n",
    "    input_shape=((128,128,3)), \n",
    "    include_top=False,\n",
    "    weights='imagenet'\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "Ne8DxNAmQBV-"
   },
   "outputs": [],
   "source": [
    "mobilenet.trainable = False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "BG_mEYFmQCMs"
   },
   "outputs": [],
   "source": [
    "feature_batch = mobilenet(image_batch)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 34
    },
    "colab_type": "code",
    "id": "T5kg-1cjpWRC",
    "outputId": "3be9ab21-e32f-43dd-8d0f-c9724a497bf5"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(64, 1280)\n"
     ]
    }
   ],
   "source": [
    "global_avg_layer = tf.keras.layers.GlobalAveragePooling2D()\n",
    "feature_batch_avg = global_avg_layer(feature_batch)\n",
    "print(feature_batch_avg.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 34
    },
    "colab_type": "code",
    "id": "hmMFpLl7p7P9",
    "outputId": "b55240b2-00b8-4f6b-9b3c-6b49fb32a296"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(64, 1)\n"
     ]
    }
   ],
   "source": [
    "prediction_layer = tf.keras.layers.Dense(1, activation='sigmoid')\n",
    "prediction_batch = prediction_layer(feature_batch_avg)\n",
    "print(prediction_batch.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "vk_OqwK3qAoU"
   },
   "outputs": [],
   "source": [
    "model = tf.keras.Sequential([\n",
    "  mobilenet,\n",
    "  global_avg_layer,\n",
    "  prediction_layer                            \n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 255
    },
    "colab_type": "code",
    "id": "rWXftzfGqOqY",
    "outputId": "10140d89-e883-44ac-f774-08ac7235bb3d"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential_2\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "mobilenetv2_1.00_128 (Model) (None, 4, 4, 1280)        2257984   \n",
      "_________________________________________________________________\n",
      "global_average_pooling2d_2 ( (None, 1280)              0         \n",
      "_________________________________________________________________\n",
      "dense_2 (Dense)              (None, 1)                 1281      \n",
      "=================================================================\n",
      "Total params: 2,259,265\n",
      "Trainable params: 1,281\n",
      "Non-trainable params: 2,257,984\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "ler1mX0PqPwj"
   },
   "outputs": [],
   "source": [
    "model.compile(optimizer='SGD',\n",
    "              loss='binary_crossentropy',\n",
    "              metrics=['accuracy'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "*Note: we could make changes to our model architecture, perform progressive fine-tuning to find the optimal number of layers to fine-tune, or employ hyperparameter tuning to improve model accuracy. Here the focus is on tooling and process rather than accuracy.*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 394
    },
    "colab_type": "code",
    "id": "Y8m-dMcEqfAK",
    "outputId": "84687292-bb2f-4234-cf66-b7c2c538ea79"
   },
   "outputs": [],
   "source": [
    "model.fit_generator(train_data_gen, \n",
    "                    validation_data=val_data_gen,\n",
    "                    steps_per_epoch=STEPS_PER_EPOCH, epochs=10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "vb0Ze3_kuTfV"
   },
   "source": [
    "#### Convert model to TFLite and quantize\n",
    "\n",
    "Save the TF Lite model file and get predictions on it using Python."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "colab_type": "code",
    "id": "GBcVxtDRtl6r",
    "outputId": "5c4d0d99-7949-4d55-99d7-fc50d337cbe6"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2299368"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "converter = tf.lite.TFLiteConverter.from_keras_model(model)\n",
    "converter.optimizations = [tf.lite.Optimize.DEFAULT]\n",
    "tflite_model = converter.convert()\n",
    "open('converted_model.tflite', 'wb').write(tflite_model)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Get a prediction on one spectrogram from our validation dataset, print the model's prediction (sigmoid probability from 0 to 1) along with ground truth label. For more details, check out the TF Lite [inference docs](https://www.tensorflow.org/lite/guide/inference)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 34
    },
    "colab_type": "code",
    "id": "_5iAeoPpuiie",
    "outputId": "613ece4d-c6dd-414b-8130-3e015dcc16f7"
   },
   "outputs": [],
   "source": [
    "# Load TFLite model and allocate tensors.\n",
    "interpreter = tf.lite.Interpreter(model_path=\"converted_model.tflite\")\n",
    "interpreter.allocate_tensors()\n",
    "\n",
    "# Get input and output tensors.\n",
    "input_details = interpreter.get_input_details()\n",
    "output_details = interpreter.get_output_details()\n",
    "\n",
    "# Test model on random input data.\n",
    "input_shape = input_details[0]['shape']\n",
    "input_data = np.array([val_image[0]], dtype=np.float32)\n",
    "interpreter.set_tensor(input_details[0]['index'], input_data)\n",
    "\n",
    "interpreter.invoke()\n",
    "\n",
    "# The function `get_tensor()` returns a copy of the tensor data.\n",
    "# Use `tensor()` in order to get a pointer to the tensor.\n",
    "output_data = interpreter.get_tensor(output_details[0]['index'])\n",
    "print(output_data)\n",
    "print(val_label[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 187
    },
    "colab_type": "code",
    "id": "UwrN9PsbKWJK",
    "outputId": "27ca68cc-4f0a-4cd2-9cb9-a29e890dfc1d"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[{'name': 'mobilenetv2_1.00_128_input',\n",
       "  'index': 1,\n",
       "  'shape': array([  1, 128, 128,   3], dtype=int32),\n",
       "  'dtype': numpy.float32,\n",
       "  'quantization': (0.0, 0)}]"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "input_details"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "wECzmME49C2G"
   },
   "source": [
    "### Phase 2: identifying instrument sounds\n",
    "\n",
    "Train a multilabel classification model to predict the instrument associated with a given instrument sound."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "qkJHwDuNDduJ"
   },
   "outputs": [],
   "source": [
    "instrument_data = verified.loc[verified['is_instrument'] == 1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 204
    },
    "colab_type": "code",
    "id": "Q07UuEEaDmDO",
    "outputId": "8f3a911a-6559-421a-ae87-c2cc0ee9878a"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>fname</th>\n",
       "      <th>label</th>\n",
       "      <th>manually_verified</th>\n",
       "      <th>is_instrument</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>001ca53d.wav</td>\n",
       "      <td>Saxophone</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0033e230.wav</td>\n",
       "      <td>Glockenspiel</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>00353774.wav</td>\n",
       "      <td>Cello</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>006f2f32.wav</td>\n",
       "      <td>Hi-hat</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>0091fc7f.wav</td>\n",
       "      <td>Cello</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           fname         label  manually_verified  is_instrument\n",
       "1   001ca53d.wav     Saxophone                  1              1\n",
       "3   0033e230.wav  Glockenspiel                  1              1\n",
       "4   00353774.wav         Cello                  1              1\n",
       "10  006f2f32.wav        Hi-hat                  1              1\n",
       "14  0091fc7f.wav         Cello                  1              1"
      ]
     },
     "execution_count": 105,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "instrument_data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 290,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Saxophone           256\n",
       "Violin_or_fiddle    250\n",
       "Clarinet            130\n",
       "Flute               128\n",
       "Cello               125\n",
       "Acoustic_guitar     105\n",
       "Oboe                 99\n",
       "Cowbell              96\n",
       "Double_bass          92\n",
       "Tambourine           92\n",
       "Hi-hat               89\n",
       "Harmonica            88\n",
       "Trumpet              86\n",
       "Gong                 85\n",
       "Electric_piano       74\n",
       "Snare_drum           70\n",
       "Glockenspiel         70\n",
       "Bass_drum            67\n",
       "Name: label, dtype: int64"
      ]
     },
     "execution_count": 290,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "instrument_data['label'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 292,
   "metadata": {},
   "outputs": [],
   "source": [
    "inst_keys = instrument_data['fname'].values\n",
    "inst_vals = instrument_data['label'].values\n",
    "instrument_label_lookup = dict(zip(inst_keys, inst_vals))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "!mkdir instruments"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in instrument_labels:\n",
    "    path = os.getcwd() + '/instruments/' + i\n",
    "    !mkdir $path"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Create directories for each instrument label. We'll use this later when we load our images with Keras's `ImageDataGenerator` class."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 299,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "colab_type": "code",
    "id": "0MtIb7Y8Dm4T",
    "outputId": "e3c1deb0-0f15-4034-bfdc-b8bb752b19bf"
   },
   "outputs": [],
   "source": [
    "for i in os.listdir(os.getcwd() + '/audio_train_spectro'):\n",
    "    id = i.split('.')[0] + '.wav'\n",
    "    try:\n",
    "        instrument_name = instrument_label_lookup[id]\n",
    "        im_path = os.getcwd() + '/audio_train_spectro/' + i\n",
    "        new_path = os.getcwd() + '/instruments/' + instrument_name + '/' + i\n",
    "        !mv $im_path $new_path\n",
    "    except:\n",
    "        pass"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 300,
   "metadata": {},
   "outputs": [],
   "source": [
    "instrument_image_generator = tf.keras.preprocessing.image.ImageDataGenerator(rescale=1./255, validation_split=0.1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 303,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "s7msPoA_EQYS"
   },
   "outputs": [],
   "source": [
    "BATCH_SIZE = 256\n",
    "IMG_HEIGHT = 128\n",
    "IMG_WIDTH = 128\n",
    "STEPS_PER_EPOCH = np.ceil(2002/BATCH_SIZE)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 304,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found 2002 images belonging to 18 classes.\n"
     ]
    }
   ],
   "source": [
    "train_data_instrument = instrument_image_generator.flow_from_directory(directory=os.getcwd() + '/instruments',\n",
    "                                                     batch_size=BATCH_SIZE,\n",
    "                                                     shuffle=True,\n",
    "                                                     target_size=(IMG_HEIGHT, IMG_WIDTH),\n",
    "                                                     classes = instrument_labels)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 305,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found 192 images belonging to 18 classes.\n"
     ]
    }
   ],
   "source": [
    "val_data_instrument = instrument_image_generator.flow_from_directory(directory=os.getcwd() + '/instruments',\n",
    "                                                     batch_size=BATCH_SIZE,\n",
    "                                                     shuffle=False,\n",
    "                                                     target_size=(IMG_HEIGHT, IMG_WIDTH),\n",
    "                                                     classes = instrument_labels,\n",
    "                                                     subset='validation')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 306,
   "metadata": {},
   "outputs": [],
   "source": [
    "image_instrument_train, label_instrument_train = next(train_data_instrument)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 307,
   "metadata": {},
   "outputs": [],
   "source": [
    "image_instrument_val, label_instrument_val = next(val_data_instrument)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 322,
   "metadata": {},
   "outputs": [],
   "source": [
    "vgg_model = tf.keras.applications.VGG19(\n",
    "    include_top=False, \n",
    "    weights='imagenet', \n",
    "    input_shape=((128,128,3))\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 309,
   "metadata": {},
   "outputs": [],
   "source": [
    "vgg_model.trainable = False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 323,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(64, 512)\n"
     ]
    }
   ],
   "source": [
    "feature_batch = vgg_model(image_batch)\n",
    "global_avg_layer = tf.keras.layers.GlobalAveragePooling2D()\n",
    "feature_batch_avg = global_avg_layer(feature_batch)\n",
    "print(feature_batch_avg.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 324,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(64, 18)\n"
     ]
    }
   ],
   "source": [
    "prediction_layer = tf.keras.layers.Dense(len(instrument_labels), activation='softmax')\n",
    "prediction_batch = prediction_layer(feature_batch_avg)\n",
    "print(prediction_batch.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 325,
   "metadata": {},
   "outputs": [],
   "source": [
    "instrument_model = tf.keras.Sequential([\n",
    "    vgg_model,\n",
    "    global_avg_layer,\n",
    "    prediction_layer\n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 326,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential_10\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "vgg19 (Model)                (None, 4, 4, 512)         20024384  \n",
      "_________________________________________________________________\n",
      "global_average_pooling2d_8 ( (None, 512)               0         \n",
      "_________________________________________________________________\n",
      "dense_10 (Dense)             (None, 18)                9234      \n",
      "=================================================================\n",
      "Total params: 20,033,618\n",
      "Trainable params: 20,033,618\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "instrument_model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 327,
   "metadata": {},
   "outputs": [],
   "source": [
    "instrument_model.compile(optimizer='adam',\n",
    "              loss=tf.keras.losses.CategoricalCrossentropy(from_logits=True),\n",
    "              metrics=['accuracy'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "*Note: we could make changes to our model architecture, perform progressive fine-tuning to find the optimal number of layers to fine-tune, or employ hyperparameter tuning to improve model accuracy. Here the focus is on tooling and process rather than accuracy.*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "instrument_model.fit_generator(\n",
    "    train_data_instrument, \n",
    "    validation_data=val_data_instrument,\n",
    "    steps_per_epoch=STEPS_PER_EPOCH, epochs=10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Get a test prediction on the instrument model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 232,
   "metadata": {},
   "outputs": [],
   "source": [
    "test_pred = instrument_model.predict(np.array([image_instrument_val[0]]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 233,
   "metadata": {},
   "outputs": [],
   "source": [
    "predicted_index = np.argmax(test_pred)\n",
    "confidence = test_pred[0][predicted_index]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "test_pred[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "print('Predicted instrument: ', instrument_labels[predicted_index], round(confidence * 100), '% confidence')\n",
    "print('Actual instrument: ', instrument_labels[np.argmax(label_instrument_val[0])])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Copyright 2020 Google Inc. Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License"
   ]
  }
 ],
 "metadata": {
  "colab": {
   "collapsed_sections": [],
   "name": "two_phase_predictions.ipynb",
   "provenance": []
  },
  "environment": {
   "name": "tf2-gpu.2-1.m46",
   "type": "gcloud",
   "uri": "gcr.io/deeplearning-platform-release/tf2-gpu.2-1:m46"
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}